前景
作为一名刚学 java 不久的小菜鸟,在写项目的过程中,对时间的处理很不熟练,于是在做完项目之后,决定自己封装一个关于时间的工具类,今后在开发过程中就可以拿来就用! 我将挨个记录,并在文章的最后贴上这个类的完整代码!
获取 yyyyMMddHHmmss
格式的时间
public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
private final static SimpleDateFormat sdfTimes = new SimpleDateFormat(YYYYMMDDHHMMSS);
/**
* 获取yyyyMMddHHmmss格式
*
* @return
*/
public static String getSdfTimes() {
return sdfTimes.format(new Date());
}
获取 YYYY
格式的时间
public static final String YYYY = "yyyy";
private final static SimpleDateFormat sdfYear = new SimpleDateFormat(YYYY);
/**
* 获取YYYY格式(年)
*
* @return
*/
public static String getYear() {
return sdfYear.format(new Date());
}
获取 MM
格式的时间(月)
public static final String MM = "MM";
private final static SimpleDateFormat sdfMM = new SimpleDateFormat(MM);
/**
* 获取MM格式
*
* @return
*/
public static String getMM() {
return sdfMM.format(new Date());
}
获取 dd
格式的时间(日)
public static final String DD = "dd";
private final static SimpleDateFormat sdfDd = new SimpleDateFormat(DD);
/**
* 获取dd格式
*
* @return
*/
public static String getDd() {
return sdfDd.format(new Date());
}
获取 yyyy-MM-dd
格式的时间
public static final String YYYY_MM_DD = "yyyy-MM-dd";
private final static SimpleDateFormat sdfDay = new SimpleDateFormat(YYYY_MM_DD);
/**
* 获取yyyy-MM-dd格式
*
* @return
*/
public static String getDay() {
return sdfDay.format(new Date());
}
获取 yyyyMMdd
格式的时间
public static final String YYYYMMdd = "yyyyMMdd";
private final static SimpleDateFormat sdfDays = new SimpleDateFormat(YYYYMMdd);
/**
* 获取yyyyMMdd格式
*
* @return
*/
public static String getDays() {
return sdfDays.format(new Date());
}
获取 YYYY-MM-DD HH:mm:ss
格式的时间
public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
private final static SimpleDateFormat sdfTime = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
/**
* 获取YYYY-MM-DD HH:mm:ss格式
*
* @return
*/
public static String getTime() {
return sdfTime.format(new Date());
}
日期比较 ,如果 s > = e
返回 true 否则返回 false
public static boolean compareDate(String s, String e) {
if (fomatDate(s) == null || fomatDate(e) == null) {
return false;
}
return fomatDate(s).getTime() >= fomatDate(e).getTime();
}
String 类型格式化成 yyyy-MM-dd
的 Date 类型
public static Date fomatDate(String date) {
DateFormat fmt = new SimpleDateFormat(YYYY_MM_DD);
try {
return fmt.parse(date);
} catch (ParseException e) {
e.printStackpublic static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";Trace();
return null;
}
}
String 类型格式化成 yyyy-MM-dd HH:mm:ss
的 Date 类型
public static Date fomatDateToYyyyMMddHHmmss(String date) {
DateFormat fmt = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
try {
return fmt.parse(date);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
校验日期是否合法
public static boolean isValidDate(String s) {
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
try {
fmt.parse(s);
return true;
} catch (Exception e) {
return false; // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
}
}
时间相减得到天数
public static long getDaySub(String beginDateStr, String endDateStr) {
long day = 0;
SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
Date beginDate = null;
Date endDate = null;
try {
beginDate = format.parse(beginDateStr);
endDate = format.parse(endDateStr);
} catch (ParseException e) {
e.printStackTrace();
}
day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000);
//System.out.println("相隔的天数="+day);
return day;
}
得到 n 天之后的日期
public static String getAfterDayDate(String days) {
int daysInt = Integer.parseInt(days);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdfd.format(date);
return dateStr;
}
得到 n 天之后是周几
public static String getAfterDayWeek(String days) {
int daysInt = Integer.parseInt(days);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("E");
String dateStr = sdf.format(date);
return dateStr;
}
按照 yyyy-MM-dd HH:mm:ss
的格式,日期转字符串
public static String date2Str(Date date) {
return date2Str(date, "yyyy-MM-dd HH:mm:ss");
}
按照 yyyy-MM-dd HH:mm:ss
的格式,字符串转日期
public static Date str2Date(String date) {
if (Tools.notEmpty(date)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return new Date();
} else {
return null;
}
}
按照 yyyy-MM-dd
的格式,字符串转日期
public static Date strToDate(String date) {
if (Tools.notEmpty(date)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
return sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return new Date();
} else {
return null;
}
}
把时间根据时、分、秒转换为时间段
public static String getTimes(String StrDate) {
String resultTimes = "";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now;
try {
now = new Date();
Date date = df.parse(StrDate);
long times = now.getTime() - date.getTime();
long day = times / (24 * 60 * 60 * 1000);
long hour = (times / (60 * 60 * 1000) - day * 24);
long min = ((times / (60 * 1000)) - day * 24 * 60 - hour * 60);
long sec = (times / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
StringBuffer sb = new StringBuffer();
//sb.append("发表于:");
if (hour > 0) {
sb.append(hour + "小时前");
} else if (min > 0) {
sb.append(min + "分钟前");
} else {
sb.append(sec + "秒前");
}
resultTimes = sb.toString();
} catch (ParseException e) {
e.printStackTrace();
}
return resultTimes;
}
按照参数 format 的格式,日期转字符串
public static String date2Str(Date date, String format) {
if (date != null) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
} else {
return "";
}
}
好了,现在贴上这个工具类的整个代码:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于