Java(Time)

Old Time

java.util.Date/java.util.Calendar/java.util.TimeZone/java.util.
java.text.DateFormat/java.text.SimpleDateFormat

Date为格林威治标准时(GMT),是一个时间点,1970年1月1日 00:00:00的毫秒数, 可以认为是没有时区和Locale概念
  DateFormat对于不同地区的配置一般有两个点, 一个是Locale , 一个是TimeZone
  Locale使DateFormat按所配置的地区特性来输出文字
TimeZone让DateFormat知道怎么去转换,去调整时间偏移度,从而得到符合配置的时区的时间
  GMT与UTC的时区是一样的,都是以伦敦时间为基准. 而GMT+8时区就是北京时间所在时区.同一时刻的时间比GMT快8小时
世界时(UT 或 UTC) , 格林威治时间 (GMT), 格林威治时(GMT)和世界时(UT) 是相等的,格林威治时(GMT) 是标准的"民间"称呼, 世界时(UT) 是相同标准的科学称呼。UTC 和 UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的。

 

New Time

java.time 不可变,线程安全
java.time.Date/Time/DateTime/ZoneId
java.time.LocalDate/LocalTime/LocalDateTime/ZoneOffset/Instant/Period/Duration
java.time.Clock

java.time.chrono 日历系统

java.time.format 格式化/解析
java.time.format.DateTimeFormatter
java.time.format.DateTimeFormatterBuilder

java.time.temporal 时态
java.time.temporal.Temporal
java.time.temporal.TemporalAdjuster

java.time.zone 时区
java.time.zone.ZoneRules

text: letters number > 2
number: letters number < 3
number/text:letters >2
fraction: babi-of-second, 1~9 letters
year: two letters or 3 letters or 4 letters or >4 letters
zone id/zone offset/zone offsetid: time-zone ID, Z+xxx or GMT+xxx or region-based ID
zone offset V: time-zone ID, must be 2 letters
zone offset z: time-zone name, 1 letter, but presents multiple text
zone offset X: zone-offset 'Z' for zero, +xx or +xxxx or +xx:xx or +xxxxxx or +xx:xx:xx
zone offset x: zone-offset, 1 letter, but presents multiple text, +xx or +xxxx or +xx:xx or +xxxxxx or +xx:xx:xx
zone offset O: localized offset, must be 1 or 4, GMT+x or GMT+xx:xx
zone offset Z: 1~4 letters, +xx or +xxxx
pad modifier: n 'p' like ppH
other:keep the 6 letters [ ] { } # '
date: 年月日
time: 时分秒.纳秒
datetime: 年月日和时分秒.纳秒
instant: machine/unit时间戳,即时间点
zone id/zone offset: 时区id
zone name/zone text: 时区显示名
chronology id: 年表id
chronology name/chronology text: 年表显示名
zone rules: zone offset 定义类
period: 两个时间点之间的时间段(for unit time: instant)
duration: 两个时间点之间的时间段(for java time)
temporal: 时态对象, 比如Date, Time, Year
clock: current instant, = System.currentTimeMillis() and TimeZone.getDefault()

Symbol  Meaning                     Presentation      Examples
------  -------                     ------------      -------
 G       era                         text              AD; Anno Domini; A
 u       year                        year              2004; 04
 y       year-of-era                 year              2004; 04
 D       day-of-year                 number            189
 M/L     month-of-year               number/text       7; 07; Jul; July; J
 d       day-of-month                number            10

 Q/q     quarter-of-year             number/text       3; 03; Q3; 3rd quarter
 Y       week-based-year             year              1996; 96
 w       week-of-week-based-year     number            27
 W       week-of-month               number            4
 E       day-of-week                 text              Tue; Tuesday; T
 e/c     localized day-of-week       number/text       2; 02; Tue; Tuesday; T
 F       week-of-month               number            3

 a       am-pm-of-day                text              PM
 h       clock-hour-of-am-pm (1-12)  number            12
 K       hour-of-am-pm (0-11)        number            0
 k       clock-hour-of-am-pm (1-24)  number            0

 H       hour-of-day (0-23)          number            0
 m       minute-of-hour              number            30
 s       second-of-minute            number            55
 S       fraction-of-second          fraction          978
 A       milli-of-day                number            1234
 n       nano-of-second              number            987654321
 N       nano-of-day                 number            1234000000

 V       time-zone ID                zone-id           America/Los_Angeles; Z; -08:30
 z       time-zone name              zone-name         Pacific Standard Time; PST
 O       localized zone-offset       offset-O          GMT+8; GMT+08:00; UTC-08:00;
 X       zone-offset 'Z' for zero    offset-X          Z; -08; -0830; -08:30; -083015; -08:30:15;
 x       zone-offset                 offset-x          +0000; -08; -0830; -08:30; -083015; -08:30:15;
 Z       zone-offset                 offset-Z          +0000; -0800; -08:00;

 p       pad next                    pad modifier      1

 '       escape for text             delimiter
 ''      single quote                literal           '
 [       optional section start
 ]       optional section end
 #       reserved for future use
 {       reserved for future use
 }       reserved for future use


 G Era 标志符 Text AD
 y 年 Year 1996; 96
 Y Weekyear    Year    2009; 09
 M 年中的月份 Month July; Jul; 07
 L    Month_in_year(standalone_form)    Month    July; Jul; 07
 w 年中的周数 Number 27
 W 月份中的周数 Number 2
 D 年中的天数 Number 189
 d 月份中的天数 Number 10
 F 月份中的星期 Number 2
 E 星期中的天数 Text Tuesday; Tue
 u    Day_number_of_week(1=Monday)    Number    1
 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

 E 中文永远都是星期X 英文E代表简写,如Mon, 而EEEE代表Monday, 调皮的话可以发现EE跟EEE都是简写,而再多的E都是全写
 y 可能由于目前的时间都是公元四位数年(2014), 所以超过四个y都会在当前年份前加0,如yyyyy->02014, 英文其他个数都是全写, 中文如两个y,则为简写,如2014就成了14
 d 所有超过两个的使用都会在应有的数字前面加0, 而且中文也不会加上日字
 M 英文M跟MM为数字月份,如03, MMM则为简写Mar, 而MMMM或者更多(调皮)为March. 中文三个或以上为X月,其他都为纯数字
 H K k m s等小时分钟,一个为0,超过加0
 Z表示时区, 个数多少也有不同, 可参见官方文档
 

转载于:https://my.oschina.net/igooglezm/blog/803708

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值