共计 1338 个字符,预计需要花费 4 分钟才能阅读完成。
GMT:Greenwich Mean Time,格林威治规范工夫
// 例 1:依据 1970-1- 1 到某个工夫点通过的毫秒数,推出具体工夫点 | |
// 1. 创立 Calendar 对象,依据毫秒数设置对象的工夫 | |
Calendar c = Calendar.getInstance(); | |
c.setTimeInMillis(46800999); | |
// 2. 创立 SimpleDateFormat 对象,指定格局 时: 分: 秒 | |
DateFormat df = new SimpleDateFormat("HH:mm:ss"); | |
// 3. 设置时区,GMT 示意 0 时区 | |
df.setTimeZone(TimeZone.getTimeZone("GMT")); | |
// 4. 格式化工夫 | |
System.out.println(df.format(c.getTime())); | |
// 例 2:依据某个字符串失去指定格局的日期 | |
String str = "2011-01-18 00:00:00.0"; | |
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); | |
Date date = df.parse(str); | |
String newstr = df.format(date); |
// 获取所有可用的时区 | |
String[] zones = TimeZone.getAvailableIDs(); | |
// 模式字母 | |
y year | |
M month in year | |
d day in month | |
D day in year | |
H hour in day(0-23) | |
h hour in day(1-12) | |
m minute in hour | |
s second in minute | |
S millisecond |
留神!创立 Calendar 类对象并设置了时区后,应用
Calendar.getTime()
办法返回的是一个java.util.Date
对象,这个 Date 对象并不会应用 Calendar 对象的时区,而是应用以后零碎的时区;
SimpleDateFormat 和 DateTimeFormatter 的区别
-
创建对象的形式:
- SimpleDateFormat 通过
new
来创建对象,它是线程不平安的,因而在多线程程序中,每次应用 SimpleDateFormat 时都要创立一个实例; - DateTimeFormatter 通过
ofPattern
办法创建对象,它是线程平安的,因而在多线程程序中不必每次应用都创立一个实例;
- SimpleDateFormat 通过
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS"); | |
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS"); |
-
parse
办法:- SimpleDateFormat 的 parse 办法将
String
转为Date
; - DateTimeFormatter 的 parse 办法将
String
转为Temporal Accessor
;
- SimpleDateFormat 的 parse 办法将
-
format
办法:- SimpleDateFormat 的 format 办法将
Date
转为String
; - DateTimeFormatter 的 format 办法将
Temporal Accessor
转为String
;
- SimpleDateFormat 的 format 办法将
参考资料:
https://linuxtut.com/en/935f4…
正文完