時間戳是一種表示時間的方式,它表示從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-hk/n/248359.html
微信掃一掃
支付寶掃一掃