java时间Date,timestamp,timezone

更多内容,请查看博客原文: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/

发布了41 篇原创文章 · 获赞 6 · 访问量 2605

猜你喜欢

转载自blog.csdn.net/footrip/article/details/104581344
今日推荐