一、什麼是時間戳?
時間戳(timestamp)是指格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。在編程中,時間戳通常指從格林威治時間1970年01月01日00時00分00秒起到當前時間的總秒數。
在Java中,時間戳是用毫秒表示的,即格林威治時間1970年01月01日00時00分00秒起至現在的總毫秒數。Java中獲取當前時間的時間戳的方法為:
long timestamp = System.currentTimeMillis();
二、將時間戳轉換成日期的方法
在Java中,將時間戳轉換成日期有多種方法,其中比較簡單的方法是使用Java提供的DateFormat類和SimpleDateFormat類。
三、使用DateFormat類將時間戳轉換成日期
DateFormat是一個抽象類,它的子類SimpleDateFormat可以將日期格式化成字元串,也可以將字元串解析成日期。將時間戳轉換成日期的過程可以分為兩步:
1、創建一個DateFormat對象
2、通過DateFormat對象的format方法將時間戳轉換成日期字元串
//時間戳 long timestamp = 1617669924000L; //創建DateFormat對象 DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //通過DateFormat對象的format方法將時間戳轉換成日期字元串 String date = formatter.format(new Date(timestamp)); System.out.println(date); //輸出:2021-04-06 22:05:24
四、使用SimpleDateFormat類將時間戳轉換成日期
SimpleDateFormat是DateFormat的子類,它除了具備DateFormat的功能外,還可以自定義日期格式。將時間戳轉換成日期的過程可以分為兩步:
1、創建一個SimpleDateFormat對象,設置日期格式
2、通過SimpleDateFormat對象的format方法將時間戳轉換成日期字元串
//時間戳 long timestamp = 1617669924000L; //創建SimpleDateFormat對象,設置日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); //通過SimpleDateFormat對象的format方法將時間戳轉換成日期字元串 String date = sdf.format(new Date(timestamp)); System.out.println(date); //輸出:2021年04月06日 22:05:24
五、注意事項
在使用DateFormat類和SimpleDateFormat類將時間戳轉換成日期時,需要注意以下幾點:
1、時間戳是long類型,需要保證其精度,不要使用int類型。
2、DateFormat和SimpleDateFormat是線程不安全的,如果多個線程同時訪問可能會導致錯誤,請使用ThreadLocal或加鎖來保證線程安全。
3、日期格式中的字母需要按照規定的含義進行填寫,如yyyy代表年份,MM代表月份,dd代表日份,HH代表小時,mm代表分鐘,ss代表秒鐘。
六、總結
在Java中將時間戳轉換成日期是比較常見的需求,使用DateFormat類和SimpleDateFormat類可以很方便地完成這個任務。在使用過程中需要注意線程安全和日期格式的規範。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285649.html