一、什麼是時間和時間戳
在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
微信掃一掃
支付寶掃一掃