SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
1.获取当前时间的时间戳
方式一:
long time = System.currentTimeMillis();
方式二:
Date date = new Date(); long time = date.getTime();
方式三:
Calendar calendar = Calendar.getInstance(); long time = calendar.getTimeInMillis();
方式四:
Clock clock = Clock.systemUTC(); long time = clock.millis();
2.获取当前客户端时间
Date date = new Date();
示例:Tue May 26 16:10:39 CST 2020
3.字符串转日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); String str = "2020/05/26 19:20:00"; try { Date date1 = sdf.parse(str); System.out.println(date1); } catch (ParseException e) { e.printStackTrace(); }
结果:Tue May 26 19:20:00 CST 2020
4.日期转字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date now = new Date(); String str = sdf.format(now); System.out.println(str);
结果:2020-05-26
5.日期比较
直接用Date自带方法before()和after()比较
String startDate = "2020-05-23";
String endDate = "2020-05-25";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date sd1 = sdf.parse(startDate);
Date sd2 = sdf.parse(endDate);
System.out.println(sd1.before(sd2));//true
System.out.println(sd1.after(sd2));//false
} catch (ParseException e) {
e.printStackTrace();
}
用String的compareTo()方法比较
String startDate = "2020-05-23";
String endDate = "2020-05-25"; if(startDate.compareTo(endDate)< 0){ System.out.println("开始日期小于结束日期!"); }else { System.out.println("开始日期大于结束日期!"); }
输出:开始日期小于结束日期!
使用Date日期的getTime()方法转换为秒数后比较
Date date1 = new Date(); Date date2 = new Date(System.currentTimeMillis() - 100);//当前时间的100秒前 if(date1.getTime() > date2.getTime()){ System.out.println("date1 大于 date2"); }
输出: date1 大于 date2
5.MySQL日期相关
见:https://www.cnblogs.com/zhukf/p/11956270.html
6.判断两个日期年份月份是否相同
public static boolean isSameDate(Date date1, Date date2) { try { Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date2); boolean isSameYear = cal1.get(Calendar.YEAR) == cal2 .get(Calendar.YEAR); boolean isSameMonth = isSameYear && cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH); boolean isSameDate = isSameMonth && cal1.get(Calendar.DAY_OF_MONTH) == cal2 .get(Calendar.DAY_OF_MONTH); return isSameDate; } catch (Exception e) { log.error("[RatingEngine] error occurred: ERROR ", e); } return false; }
转自:https://blog.csdn.net/qq_33366229/article/details/78256962