Java把數字(int或Long型別)轉換成yyyy-MM-dd HH:MM:ss格式的24小時制和12小時制
目錄
(1)關於Java的24小時制和12小時制
格式裡的時如果用hh表示用12小時制,HH表示用24小時制。
例如:
yyyy-MM-dd hh:mm:ss 12小時 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //小寫是12小時
yyy-MM-dd HH:MM:ss 24小時 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");//大寫是24小時的
(2)把數字轉成時間
時間轉換,拿到一串數字的時候,可以先到這個網站核對下時間戳是否正確。
在Java裡面,用的是毫秒算的,因此,用Long型別的話,需要先把數字轉換成Long型別再轉成時間。
上程式碼:
1541647462000 :毫秒算,是2018-11-08 11:11:22
1541647462 毫秒算出是 1970-01-19 04:01:07
1秒=1000毫秒
import static org.junit.Assert.*; import java.text.SimpleDateFormat; import java.util.Date; import org.junit.Test; public class test1108 { @Test public void test() { Date date = new Date(); //格式裡的時如果用hh表示用12小時制,HH表示用24小時制。MM必須是大寫! // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); date.setTime(Long.parseLong("1541647462000"));//java裡面應該是按毫秒 System.out.println(sdf.format(date)); date.setTime(1541647462); System.out.println(sdf.format(date)); } }
運算結果:
2018-11-08 11:24:22
1970-01-19 04:14:07
(3)有趣的問題:HH:mm:ss 和 HH:MM:ss
對於yyyy-MM-dd HH:mm:ss 和 yyyy-MM-dd HH:MM:ss
輸出的結果竟然是一樣還不報錯???
原因:
實際時間:2018年11月8日 16:01:51
HH:MM:ss
HH:mm:ss輸出
小編覺得,因為是01 進一位,變成11.但是,並不是!!!
結論:
HH:mm:ss 是正確的輸出,但是HH:MM:ss 則是 分鐘顯示 :11 。無論你是01 02 03 04 08 09分鐘,都是顯示11哦。
(4)日期元素示例
字母 日期或時間元素 表示 示例 G Era 標誌符 Text AD y 年 Year 1996 ; 96 M 年中的月份 Month July ; Jul ; 07 w 年中的週數 Number 27 W 月份中的週數 Number 2 D 年中的天數 Number 189 d 月份中的天數 Number 10 F 月份中的星期 Number 2 E 星期中的天數 Text Tuesday ; Tue a Am/pm 標記 Text PM H 一天中的小時數(0-23) Number 0 k 一天中的小時數(1-24) Number 24 K am/pm 中的小時數(0-11) Number 0 h am/pm 中的小時數(1-12) Number 12 m 小時中的分鐘數 Number 30 s 分鐘中的秒數 Number 55 S 毫秒數 Number 978 z 時區 General time zone Pacific Standard Time ; PST ; GMT-08:00 Z 時區 RFC 822 time zone -0800