文中输出的时间,都是相同的,便于读者观看。
Date转Timestamp
1 2 3 4 5
| Date date = new Date(); long currentMillis = date.getTime() System.out.println(currentMillis);
1578064861125
|
java.util.Date
, 这个类跟时区是无关的。
Timestamp转Date
1 2 3 4 5
| 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)呢?
1 2 3 4
| String timeZoneId = TimeZone.getDefault().getID(); System.out.println(timeZoneId);
Asia/Shanghai
|
发现系统默认的时区id为Asia/Shanghai
。
如何查看有哪些时区id呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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
|
如果我们想查看日本东京的时间呢?
1 2 3 4 5 6 7
| 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
|