一、Date
Date没有时区,Date存储的是一个long型变量。
这个变量的值为自1997-01-01 00:00:00(GMT)至Date对象记录时刻所经过的毫秒数,可以通过getTime()方法,获取这个变量值,且这个变量值和时区没有关系
全球任意地点同时执行new Date().getTime()获取到的值相同
但是Date的toString方法打印的时候,会使用系统默认时区。
Date对象没有时区概念,但是格式化Date对象或者把字符串解析为Date对象有时区概念。无论格式化还是解析,默认使用系统时间,只不过是可以自己再自定时区。
按指定格式格式化或者解析日期的相关类:SimpleDateFormat
二、Time
Java8 Time:
https://www.jianshu.com/p/19bd58b30660
LocalDateTime time=LocalDateTime.now();
System.out.println(time);
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String strDate2 = dtf2.format(time);
System.out.println(strDate2);
附:
时间输出格式带T:
https://blog.csdn.net/Wxin0721/article/details/124365194
数据库MySQL和LocalDateTime交互,需要舍弃纳秒,不然纳秒会被四舍五入,导致入库的时间和程序里获取的时间不一样
https://blog.csdn.net/weixin_30563489/article/details/113343641
java.util.Date,日期格式为年月日时分秒
java.sql.Date,日期格式为年月日
java.sql.Time,日期格式为时分秒
java.sql.TimeStamp,日期格式为年月日时分秒纳秒(毫微秒)
java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等字段
LocalDateTime,在MySQL中使用datetime对应