引言
在Java開發中,經常需要將不同格式的時間轉換成時間戳。時間戳是指從Unix紀元1970-01-01 00:00:00開始的秒數,它是一個長整型。Java提供了多種方式來將時間轉換為時間戳,比如使用SimpleDateFormat類、Calendar類以及JDK8新引入的DateTimeFormatter類等。
SimpleDateFormat類
使用SimpleDateFormat將String格式的時間轉換為時間戳
public static long StringToTimestamp(String dateStr) throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormat.parse(dateStr);
return date.getTime();
}
在上述代碼中,我們使用SimpleDateFormat類初始化一個日期格式,然後將日期字符串轉換為Date對象,最後通過Date對象獲取時間戳。
使用SimpleDateFormat將java.util.Date類型的時間轉換為時間戳
public static long dateToTimestamp(Date date) {
return date.getTime();
}
這段代碼中,我們直接將java.util.Date類型的時間轉換為時間戳。
Calendar類
使用Calendar將java.util.Date類型的時間轉換為時間戳
public static long dateToTimestamp2(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.getTimeInMillis();
}
Calendar類也可以用來將java.util.Date類型的時間轉換為時間戳。我們首先初始化一個Calendar對象,並設置其時間為要轉換的日期,最後調用getTimeInMillis()方法獲取時間戳。
DateTimeFormatter類
使用DateTimeFormatter將String類型的時間轉換為時間戳
public static long StringToTimestamp2(String dateStr) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(dateStr, dateTimeFormatter);
return localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
}
在JDK8中,新增了DateTimeFormatter類來提供更好的時間格式化和解析功能。我們可以使用它將String類型的時間轉換為DateTime對象,再轉換為時間戳。
總結
以上介紹了Java中將時間轉換為時間戳的幾種常用方法,分別使用了SimpleDateFormat、Calendar和DateTimeFormatter類。其中,SimpleDateFormat是應用廣泛的一種方式,但是不支持線程安全,所以在多線程的情況下需要注意。另外,在JDK8中新增的DateTimeFormatter類提供了更好的日期格式化和解析功能,也可以進行時間戳的轉換。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/244025.html
微信掃一掃
支付寶掃一掃