使用SimpleDateFormat自定義格式化時間
阿新 • • 發佈:2018-12-21
有個需求,資料庫裡寫入的不是時間戳,而是這樣的時間 1980-01-01 00:00:00
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(new Date());
regDeviceRsp.setSysTime(dateString);
參考如下
SimpleDateFormat
SimpleDateFormat
是DateFormat
的一個具體類,它允許我們指定格式模式從而獲取我們理想的格式化日期和時間。
通過SimpleDateFormat
applyPattern(String pattern)
方法新增一個格式模式字串。對於格式模式字串,API為我們提供了豐富的模式元素,下面列出幾個常用的模式元素
字母 | 日期或時間元素 | 示例 |
---|---|---|
y | 年 | 2015 |
M | 年中的月份 | 12 |
w | 年中的週數 | 50 |
W | 月份中的週數 | 02 |
D | 年中的天數 | 344 |
d | 月份中的天數 | 10 |
F | 月份中的星期 | 02 |
E | 星期中的天數 | 星期四、Thu |
a | AM/PM標記 | 下午、PM |
H | 一天中的小時數(0~23) | 21 |
k | 一天中的小時數(1~24) | 21 |
K | am/pm中的小時數(0~11) | 09 |
h | am/pm中的小時數(1~12) | 09 |
m | 小時中的分鐘數 | 31 |
s | 分鐘中的秒數 | 08 |
S | 毫秒數 | 716 |
如果你設定Locale的話,會有不同的顯示格式,比如如果設定Locale.ENGLISH,E會顯示為英文格式,a顯示為AM或PM
Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("今天是yyyy-MM-dd E hh:mm:ss,是yyyy年的第DD天,在該月是第dd天"); System.out.println(format.format(date)); 將會輸出:今天是2015-12-10 星期四 09:38:16,是2015年的第344天,在該月是第10天