時間戳是一種表示時間的方式,它表示從1970年1月1日00:00:00到當前時間的秒數。在Java中,我們經常需要將這種時間戳轉換成具體的日期和時間,或將日期和時間轉換成時間戳。本文將詳細介紹如何在Java中進行時間戳轉換。
一、將時間戳轉換成日期和時間
Java中可以使用Date
類來表示具體的日期和時間,我們可以使用new Date(timestamp)
方法將時間戳轉換成Date
對象,其中timestamp
為要轉換的時間戳。
示例代碼如下:
long timestamp = System.currentTimeMillis(); //獲取當前時間戳 Date date = new Date(timestamp); //將時間戳轉換成Date對象 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //設置日期格式 String datetime = dateFormat.format(date); //將Date對象格式化成字元串 System.out.println(datetime); //輸出格式化後的日期和時間
在上述示例代碼中,我們首先通過System.currentTimeMillis()
方法獲取當前時間戳,然後將其轉換成Date
對象,接著使用SimpleDateFormat
類設置日期和時間的格式,最後將Date
對象格式化成字元串並輸出。
輸出結果如下:
2021-05-24 18:20:43
二、將日期和時間轉換成時間戳
與將時間戳轉換成日期和時間相反,將日期和時間轉換成時間戳需要使用System.currentTimeMillis()
方法,該方法可以獲取當前系統的時間戳。
示例代碼如下:
String datetime = "2021-05-24 18:20:43"; //要轉換的日期和時間 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //設置日期格式 Date date = dateFormat.parse(datetime); //將字元串解析成Date對象 long timestamp = date.getTime(); //將Date對象轉換成時間戳 System.out.println(timestamp); //輸出時間戳
在上述示例代碼中,我們首先定義要轉換的日期和時間,然後設置日期和時間的格式,接著使用SimpleDateFormat
類將字元串解析成Date
對象,最後將Date
對象轉換成時間戳並輸出。
輸出結果如下:
1621854043000
三、將時間戳轉換成本地時間
默認情況下,Java會將時間戳轉換成UTC時間,而不是本地時間。如果需要將時間戳轉換成本地時間,可以使用Calendar.getInstance()
方法獲取Calendar
對象,並調用setTimeInMillis(timestamp)
方法將時間戳設置到Calendar
對象中,然後調用get()
方法獲取年、月、日、時、分、秒等屬性值。
示例代碼如下:
long timestamp = System.currentTimeMillis(); //獲取當前時間戳 Calendar calendar = Calendar.getInstance(); //獲取Calendar對象 calendar.setTimeInMillis(timestamp); //將時間戳設置到Calendar對象中 int year = calendar.get(Calendar.YEAR); //獲取年份 int month = calendar.get(Calendar.MONTH) + 1; //獲取月份(需要加1) int day = calendar.get(Calendar.DAY_OF_MONTH); //獲取日 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); //輸出本地時間
在上述示例代碼中,我們首先獲取當前時間戳,然後使用Calendar.getInstance()
方法獲取Calendar
對象,將時間戳設置到Calendar
對象中,最後使用get()
方法獲取年、月、日、時、分、秒等屬性值。
輸出結果如下:
2021-5-24 18:20:43
四、本文代碼示例
本文中所示的完整的代碼示例如下:
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class TimeUtils { //將時間戳轉換成日期和時間 public static String timestampToDate(long timestamp) { Date date = new Date(timestamp); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return dateFormat.format(date); } //將日期和時間轉換成時間戳 public static long dateToTimestamp(String datetime) throws Exception { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = dateFormat.parse(datetime); return date.getTime(); } //將時間戳轉換成本地時間 public static String timestampToLocalTime(long timestamp) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timestamp); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second; } //測試代碼 public static void main(String[] args) throws Exception { long timestamp = System.currentTimeMillis(); String datetime = timestampToDate(timestamp); System.out.println("時間戳轉換成日期和時間:" + datetime); long newTimestamp = dateToTimestamp(datetime); System.out.println("日期和時間轉換成時間戳:" + newTimestamp); String localTime = timestampToLocalTime(timestamp); System.out.println("時間戳轉換成本地時間:" + localTime); } }
在本文中,我們使用TimeUtils
類封裝了時間戳轉換的功能,並使用main()
方法進行測試。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248359.html