引言
在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-tw/n/244025.html