java的time_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表示时区, 个数多少也有不同, 可参见官方文档

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值