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 | 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 |