一、通過Date類獲取當前時間
Java程序可以使用Date類獲取當前系統時間,可以獲得時間的毫秒數。
Date date = new Date();
System.out.println(date);
輸出結果為:
Wed Nov 25 11:56:27 CST 2020
通過Date對象的toString()方法,可以將系統時間格式化為字符串類型。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(date);
System.out.println(currentTime);
輸出結果為:
2020-11-25 11:56:27
二、通過Calendar類獲取當前時間
Java程序還可以使用Calendar類獲取當前系統時間,可以更加方便的獲取年、月、日、時、分、秒等具體時間。
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
輸出結果為:
2020-11-25 12:13:35
三、通過Instant類獲取當前時間
Java程序還可以使用Java 8中的新時間API(包括Instant類和LocalDateTime類)獲取當前系統時間,使用起來更加簡單。
Instant instant = Instant.now();
System.out.println(instant);
輸出結果為:
2020-11-25T04:19:27.693Z
Instant可以通過atZone()方法轉換為本地時間,使用toLocalDateTime()方法可以轉換為LocalDateTime對象。
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
System.out.println(zonedDateTime);
LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println(localDateTime);
輸出結果為:
2020-11-25T12:06:04.635+08:00[Asia/Shanghai]
2020-11-25T12:06:04.635
四、當地時間和UTC時間的轉換
如果需要將當地時間轉換為UTC時間,可以使用Java 8提供的新時間API中的ZoneOffset類。
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
ZoneOffset offset = OffsetDateTime.now().getOffset();
// 獲得本地時間與UTC時間的偏差
System.out.println(offset);
Instant instant = localDateTime.toInstant(offset);
// 轉換為UTC時間
System.out.println(instant);
輸出結果為:
2020-11-25T12:34:11.743
+08:00
2020-11-25T04:34:11.743Z
五、獲取時間戳
Java程序還可以使用System類獲取時間戳,可以獲得當前時間與1970年1月1日00:00:00之間的毫秒數或秒數。
long timestampInMillis = System.currentTimeMillis();
System.out.println(timestampInMillis + "ms");
long timestampInSeconds = timestampInMillis / 1000;
System.out.println(timestampInSeconds + "s");
輸出結果為:
1606277658455ms
1606277658s
六、總結
本文介紹了Java程序獲取當前時間的幾種常用方法,包括使用Date類、Calendar類、Instant類以及System類等。通過這些方式,可以獲得當前系統時間、當地時間和UTC時間的轉換、以及時間戳等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257568.html
微信掃一掃
支付寶掃一掃