更多内容,请查看博客原文:java时间Date,timestamp,timezone
https://finolo.gy/2020/01/java时间Date-timestamp-timezone/
文中输出的时间,都是相同的,便于读者观看。
Date转Timestamp
Date date = new Date();
long currentMillis = date.getTime()
System.out.println(currentMillis);
1578064861125
java.util.Date
, 这个类跟时区是无关的。
Timestamp转Date
long timeMillis = System.currentTimeMillis();
Date date = new Date(timeMillis);
System.out.println(date);
Fri Jan 03 23:21:01 CST 2020
Date转日期字符串
当我们打印出Date时,显示的时间,就是带有时区的字符串了。那为什么是CST(China Standard Time)呢?
String timeZoneId = TimeZone.getDefault().getID();
System.out.println(timeZoneId);
Asia/Shanghai
发现系统默认的时区id为Asia/Shanghai
。
如何查看有哪些时区id呢?
String[] availableIDs = TimeZone.getAvailableIDs();
for (String availableID : availableIDs) {
System.out.println(availableID);
}
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
...
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
如果我们想查看日本东京的时间呢?
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
String dateStr = sdf.format(date);
System.out.println(dateStr);
2020-01-04 00:21:01.125 +0900
更多内容,请查看博客原文:java时间Date,timestamp,timezone
https://finolo.gy/2020/01/java时间Date-timestamp-timezone/