1. 程式人生 > >使用SimpleDateFormat自定義格式化時間

使用SimpleDateFormat自定義格式化時間

有個需求,資料庫裡寫入的不是時間戳,而是這樣的時間 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

SimpleDateFormatDateFormat的一個具體類,它允許我們指定格式模式從而獲取我們理想的格式化日期和時間。
通過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天