Date轉String格式(yyyy-MM-dd HH:mm:ss)
//擷取目前的日期
Date date = new Date();
//設定時間格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//轉換為String格式
String dateStr = sdf.format(date);
結果:2019-08-30 15:54:02
String轉Date
String dateStr = "2019-08-30 15:56:27";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
結果:Fri Aug 30 15:56:27 CST 2019
時間戳轉String
long time = 1485178077000L;
//設定時間格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//轉換為String格式
String dateStr = sdf.format(new Date(time));
System.out.println(dateStr);
結果:2017-01-23 21:27:57
String轉時間戳
String strDate = "2017-01-23 21:27:57";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
long time = sdf.parse(strDate).getTime();
System.out.println(time);
} catch (ParseException e) {
e.printStackTrace();
}
結果:1485178077000
Date格式轉時間戳
Date date = new Date();
long time = date.getTime();
System.out.println(time);
結果:1567156766484
時間戳轉Date格式
long time = 1567156766484L;
Date date = new Date(time);
System.out.println(date);
結果:Fri Aug 30 17:19:26 CST 2019
CST字元串格式轉Date格式、String格式、時間戳
String dateStr = "Fri Aug 30 15:56:27 CST 2019";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'CST' yyyy", Locale.ENGLISH);
try {
//轉換Date格式
Date date = sdf.parse(dateStr);
System.out.println("date格式:" + date);
//轉換時間戳格式
long time = date.getTime();
System.out.println("時間戳:" + time);
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//轉換為String格式
String newStr = sdf.format(date);
System.out.println("String格式" + newStr);
} catch (ParseException e) {
e.printStackTrace();
}
結果:
GMT(格林威治時間)字元串格式轉Date格式、String格式、時間戳 -- CST格式
String stringDate = "Fri, 30 Aug 2019 09:39:07 GMT";
System.out.println("格林威治時間:" + stringDate);
//如果stringDate中沒有‘,’号,格式轉換中也不要加,保持一緻
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH);
try {
//格林威治時間字元串轉為Date格式 - 此Date是中原標準時間 GMT+8
Date date = sdf.parse(stringDate);
System.out.println("GMT+8 Date格式:" + date);
//格林威治時間字元串轉為時間戳 - 此時間戳是中原標準時間 GMT+8
long time = date.getTime();
System.out.println("GMT+8 時間戳:" + time);
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//格林威治時間字元串轉為String字元串 - 此String字元串是中原標準時間 GMT+8
String newStr = sdf.format(date);
System.out.println("GMT+8 String格式:" + newStr);
} catch (ParseException e) {
e.printStackTrace();
}
結果:
GMT(格林威治時間)字元串格式轉String格式 -- 保持GMT格式
String stringDate = "Fri, Aug 30 09:39:07 GMT 2019";
System.out.println("格林威治時間:" + stringDate);
//如果stringDate中沒有‘,’号,格式轉換中也不要加,保持一緻
SimpleDateFormat gmt = new SimpleDateFormat("EEE, MMM dd HH:mm:ss 'GMT' yyyy",Locale.ENGLISH);
try {
// GMT轉換時間戳 - 此時間戳是格林威治時間
long gmtTime = gmt.parse(stringDate).getTime();
System.out.println("格林威治時間時間戳:" + gmtTime);
// 時間戳轉換String字元串 - 此時間戳是格林威治時間
gmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String gmtString = gmt.format(new Date(gmtTime));
System.out.println("格林威治時間String字元串:" + gmtString);
} catch (ParseException e) {
e.printStackTrace();
}
結果:
SimpleDateFormat參數對照表
這裡附上一張網上SimpleDateFormat參數對照表,隻要掌握字母規則,就可以轉換出自己需要的時間格式
字母 | 日期或時間元素 | 表示 | 示例 |
---|---|---|---|
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 | |
k | 一天中的小時數(1-24) | Number | 24 |
K | am/pm中的小時數(0-11) | Number | |
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 |