一、什麼是時間戳
時間戳(Timestamp)是指從1970年1月1日00:00:00 GMT(格林威治時間)以來經過的秒數。在Unix操作系統或Java中,都有使用時間戳的需求。
二、Java中時間戳轉Date的實現方法
在Java中,有兩種方法可以將時間戳轉換為日期時間:
- 使用java.util.Date類
- 使用java.time包中的類(Java 8及以上版本)
使用java.util.Date類實現
Java.util.Date類提供了一個構造函數,接收一個表示時間戳的long類型參數,將其轉換為日期時間格式。
long timeStamp = 1636517433L; //示例時間戳
Date date = new Date(timeStamp * 1000); //將時間戳乘以1000,轉換為毫秒級別
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatDate = sdf.format(date);
System.out.println(formatDate); //輸出:2021-11-10 17:10:33
使用java.time包中的類實現
Java 8及以上版本引入了新的日期時間API,java.time包中的類提供了一個ofEpochSecond()方法,可以將時間戳轉換為Instant對象(代表時間線上的一個瞬間),再通過atZone()方法指定時區轉換為ZonedDateTime對象(帶有時區信息的日期時間對象)。
long timeStamp = 1636517433L; //示例時間戳
ZoneId zone = ZoneId.systemDefault(); //獲取系統時區
ZonedDateTime zdt = Instant.ofEpochSecond(timeStamp).atZone(zone); //將時間戳轉換為ZonedDateTime對象
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formatDate = dtf.format(zdt);
System.out.println(formatDate); //輸出:2021-11-10 17:10:33
三、時間戳的來源
在開發中,我們通常會從以下幾個方面獲取時間戳:
- Java中的System.currentTimeMillis()方法返回當前時間的毫秒數
- 通過網絡傳輸獲取到的時間戳,例如使用NTP(Network Time Protocol)協議獲取網絡標準時間
- 從第三方API獲取,例如天氣預報API的返回數據中包含的日出日落時間戳等
總結
本文介紹了Java中將時間戳轉換為日期時間的兩種實現方法,同樣也闡述了時間戳的含義和來源。在實際開發中,我們可以根據需求選擇不同的實現方式,並盡量從可靠的來源獲取時間戳。
原創文章,作者:BZPHZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/316915.html