import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
*
* <p>Title:时间转换类 </p>
* <p>Description:有关时间转换的一些方法 </p>
* @author ZZJ
* @version 1.0
*/
public class DateFactory {
/**
* 根据pattern 转换日期对象为日期字符串,如"yyyy/MM/dd hh:mm:ss"
* @param date 日期
* @param pattern 日期格式
* @return 日期字串
*/
public static String getFormatDate(Date date, String pattern) {
if (date == null) {
return null;
}
SimpleDateFormat format = new SimpleDateFormat(pattern);
String str = format.format(date);
return str;
}
/**
* 根据参数得到当前时间值
* @param p (1:年;2:月;3:日;4:小时;5:分钟;6:秒)
* @return
*/
public static int getTimeValue(int p) {
Calendar calendar = Calendar.getInstance();
int result = 0;
switch (p) {
case 1:
result = calendar.get(Calendar.YEAR);
break;
case 2:
result = calendar.get(Calendar.MONTH) + 1;
break;
case 3:
result = calendar.get(Calendar.DATE);
break;
}
return result;
}
/**
*转换日期对象为日期字符串
* @param date 日期对象
* @param isFull 是否为完整的日期数据,
* 为true时, 格式如"2000-03-05 01:05:04"
* 为false时, 格式如 "2000-03-05"
* @return 符合要求的日期字符串
*/
public static String getSmpFormatDate(Date date, boolean isFull) {
String pattern = null;
if (date == null)
return "";
if (isFull) {
pattern = "yyyy-MM-dd HH:mm:ss";
} else {
pattern = "yyyy-MM-dd";
}
return getFormatDate(date, pattern);
}
/**
* 转换日期对象为日期字符串,格式如"2000-03-05 01:05:04"
*
* @param date 日期对象
* @return
*/
public static String getSmpFormatDate(Date date) {
return getSmpFormatDate(date, true);
}
/**
* 将字符串转换为日期对象
* @param dateStr 字符串
* @param pattern 日期的pattern
* @return 日期对象,不成功则返回 null
*/
private static Date convertStrToDate(String dateStr, String pattern) {
SimpleDateFormat format = new SimpleDateFormat(pattern);
Date date = null;
try {
date = format.parse(dateStr);
} catch (Exception ex) {
} finally {
}
return date;
}
/**
* 将字符串转换为日期对象,采用默认的pattern
* @param dateStr 字符串
* @return 日期对象,不成功则返回 null
*/
public static Date convertStrToDate(String dateStr) {
try {
String pattern = "";
if (dateStr.length() <= 10) {
pattern = "yyyy-MM-dd";
} else if (dateStr.length() <= 20) {
pattern = "yyyy-MM-dd HH:mm:ss";
} else {
pattern = "yyyy-MM-dd HH:mm:ss.SSS";
}
return convertStrToDate(dateStr, pattern);
} catch (Exception e) {
return null;
}
}
/**
* 得到两个时间的差,并以字符串的形式给出
* @param dt1
* @param dt2
* @return
*/
public static String getDiffTime(Date dt1, Date dt2) {
long time = dt2.getTime() / 1000 - dt1.getTime() / 1000;
String str = "0:0:0";
if (time > 0) {
long day = time / 60 / 60 / 24;
long hour = time / 60 / 60 % 24;
long minute = time / 60 % 60;
long second = time % 60;
if (day > 0) {
str = "" + day + "d " + hour + ":" + minute + ":" + second;
} else {
str = "" + hour + ":" + minute + ":" + second;
}
}
return str;
}
/**
* 得到时间串精确到毫秒
*
* @return
*/
public static String getTimeChar() {
StringBuffer strResponseDate = new StringBuffer();
try {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
format.setLenient(false);
strResponseDate.append(format.format(date));
} catch (Exception ex) {
ex.printStackTrace();
}
return strResponseDate.toString();
}
/**
* 计算两个日期间相隔的周数
*
* @param startDate
* 开始日期
* @param endDate
* 结束日期
* @return
*/
public static int computeWeek(Date startDate, Date endDate) {
int weeks = 1;
Calendar beginCalendar = Calendar.getInstance();
beginCalendar.setTime(startDate);
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate);
while (beginCalendar.before(endCalendar)) {
// 如果开始日期和结束日期在同年、同月且当前月的同一周时结束循环
if (beginCalendar.get(Calendar.YEAR) == endCalendar.get(Calendar.YEAR)
&& beginCalendar.get(Calendar.MONTH) == endCalendar.get(Calendar.MONTH)
&& beginCalendar.get(Calendar.DAY_OF_WEEK_IN_MONTH) == endCalendar
.get(Calendar.DAY_OF_WEEK_IN_MONTH)) {
break;
} else {
beginCalendar.add(Calendar.DAY_OF_YEAR, 7);
weeks += 1;
}
}
return weeks;
}
/**
* 加减天数
*
* @param date
* @param d
* @return
*/
public static Date dateAddOrReduce(Date date, int d) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, d);
return cal.getTime();
}
/**
* 根据当前日期获取之后一周的莫一天
* @param d 星期数 例如星期一d=1,星期日d=7
* @return
*/
public static Date getWeekDate(int d) {
return getWeekDate(new Date(), d);
}
/**
* 根据指定日期获取之后一周的莫一天
* @param d 星期数 例如星期一d=1,星期日d=7
* @return
*/
public static Date getWeekDate(Date date, int d) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.set(Calendar.DAY_OF_WEEK, d + 1);
return cal.getTime();
}
}
分享到:
相关推荐
26.java自动类型转换.zip26.java自动类型转换.zip26.java自动类型转换.zip26.java自动类型转换.zip26.java自动类型转换.zip26.java自动类型转换.zip26.java自动类型转换.zip26.java自动类型转换.zip26.java自动类型...
java音频格式转换工具.zipjava音频格式转换工具.zip java音频格式转换工具.zipjava音频格式转换工具.zip java音频格式转换工具.zipjava音频格式转换工具.zip java音频格式转换工具.zipjava音频格式转换工具.zip java...
这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...
Java.util.Date与java.sql.Date的互转及字符串转换为日期时间格式 java.util.Date和java.sql.Date是Java中两个常用的日期时间类,分别属于不同的包。java.util.Date是Java标准库中的日期时间类,而java.sql.Date是...
Java KeyStore文件转换为微软的.pfx文件和OpenSSL的PEM格式文件(.key + .crt) 运行方式: JKS2PFX 文件> 密码> 别名> <导出文件名> [Java Runtime的目录] Java Runtime的目录,指包含Java.exe和keytool.exe的目录...
可能的方法包括`getConversionFactor`,用于获取两个单位间的转换因子,以及`convert`,用于实际的单位转换操作。 **UnitConvertCommon.java**:此文件可能包含了通用的单位转换辅助函数或枚举类型,列举了各种常见...
在IT行业中,地区码与地区...总之,"地区码与地区名称相互转换java代码11.zip"是一个实用的工具,可以帮助开发者在处理地理位置相关的项目时提高效率。理解并运用这些知识点,可以优化相关功能的实现,提升用户体验。
- 描述提到了对这个问题的相关资料进行整理,这意味着该文档将提供如何识别、分析并解决此类问题的方法。 #### 详细解析 **异常出现的原因:** 1. **内存分配不足**:默认情况下,JVM启动时分配的堆内存可能不...
Java编程语言提供了多种日期时间类来处理不同的场景需求,其中`java.util.Date`和`java.sql.Date`是两个常见的日期类型,它们之间存在一定的差异和转换关系。 `java.util.Date`是Java标准库中的基础日期类,它表示...
在IT行业中,二维码作为一种高效的信息编码方式,广泛应用于各种场景,如链接分享、电子票务等。Java作为一款流行的编程语言,提供...理解并掌握这些技术,对于进行Java相关的Web开发或者移动应用开发都是非常有益的。
Java 类型转换是编程过程中常见的操作,特别是在处理不同数据类型的变量时。Java 数据类型主要分为三大类:布尔型、字符型和数值型。数值型又细分为整型(byte、short、int、long)和浮点型(float、double)。此外...
在Java Web开发中,Struts框架是一个非常流行的MVC(模型-视图-控制器)架构,用于构建可维护性高、结构清晰的Web应用程序。然而,对于初学者来说,遇到错误是常有的事,比如“java.lang.ClassNotFoundException: ...
Java调用视频转换工具FFmpeg是一项常见的任务,特别是在多媒体处理和流媒体服务中。FFmpeg是一个强大的跨平台命令行工具,用于转换、流化、编辑和处理音频和视频文件。在Java应用程序中集成FFmpeg,可以实现灵活的...
Spire.Office for Java 是一套企业级的涵盖 E-iceblue 所有 Java组件的集合,它包括以下产品的最新版本:Spire.Doc for Java, Spire.XLS for Java,Spire.Presentation for Java, Spire.PDF for Java 和 Spire....
1.支持java.sql.Date 与 java.util.Date互转 2.支持java.util.Calendar,java.util.Date,java.sql.Date格式化输出 3.支持字符串转java.util.Date 支持字符串格式: yyyyMMdd yyyyMMddHH yyyyMMddHHmm ...
转换回Java Bean需要创建一个新的Bean实例并设置属性值,因为BeanMap不直接提供反向转换的方法。你可以遍历Map并使用反射API来设置Bean的属性: ```java MyBean myBean = new MyBean(); for (Object key : bean...
它可以将日期/时间转换为字符串,也可以将符合特定模式的字符串转换为日期/时间。其构造方法接受一个模式字符串作为参数,该模式定义了日期/时间的显示格式。 #### 2. 时间格式模式 `SimpleDateFormat`支持多种...
阿里巴巴Java开发手册(终极版).pdf