一、什麼是時間和時間戳
在Java中,時間通常表示一個具體的日期和時間,例如「2021-03-20 15:30:20」。時間戳,則是指某一個特定時間點距離一個基準時間(如1970年1月1日00:00:00)的秒數或毫秒數。例如,「1616267440」表示2021-03-20 15:37:20這個時間點距離1970年1月1日00:00:00的秒數。
二、Java中時間和時間戳的轉換
1. 時間轉時間戳
將時間轉換為時間戳,需要先將時間轉換為時間類型對象,然後再通過時間類型對象的getTime()
方法,獲取距離1970年1月1日00:00:00的毫秒數,最後將毫秒數轉換為秒數即可。
/** * 將時間轉換為時間戳 * @param timeStr 時間字元串,格式為:"yyyy-MM-dd HH:mm:ss" * @return 時間戳,單位:秒 * @throws ParseException */ public static long timeToStamp(String timeStr) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(timeStr); long stamps = date.getTime(); return stamps / 1000; // 毫秒數轉秒數 }
2. 時間戳轉時間
將時間戳轉換為時間,需要先將時間戳轉換為時間類型對象,然後再通過時間類型對象的format()
方法,將時間格式化為指定格式的字元串。
/** * 將時間戳轉換為時間 * @param stamp 時間戳,單位:秒 * @return 時間字元串,格式為:"yyyy-MM-dd HH:mm:ss" */ public static String stampToTime(long stamp){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String timeStr = sdf.format(new Date(stamp * 1000)); // 秒數轉毫秒數 return timeStr; }
三、使用示例
下面是一個使用示例,它將當前時間轉換為時間戳,並將該時間戳轉換為時間字元串:
public static void main(String[] args) throws ParseException { // 獲取當前時間並格式化 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String timeStr = sdf.format(new Date()); System.out.println("當前時間為:" + timeStr); // 將當前時間轉換為時間戳 long stamp = timeToStamp(timeStr); System.out.println("當前時間戳為:" + stamp); // 將時間戳轉回時間字元串 String timeStr2 = stampToTime(stamp); System.out.println("轉換後的時間為:" + timeStr2); }
運行上述代碼後,可以得到下面的輸出結果:
當前時間為:2021-03-21 10:23:26 當前時間戳為:1616325806 轉換後的時間為:2021-03-21 10:23:26
四、總結
Java提供了簡單易用的時間和時間戳轉換方法,在實際開發中,我們可以根據要求靈活地使用這些方法,實現時間和時間戳之間的相互轉換。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196531.html