日期时间在人类的生活中是有利的计事单元,它给予事件一个可见的有序排列。
当日期用数字表示时,可以用不同的方式解释日期。例如,01/05/12 可能意味着 2012 年 1 月 5 日或 2012 年 5 月 1 日。就个人而言,这种不确定性可能非常令人沮丧,在商业环境中,这种不确定性可能非常昂贵。组织会议和交付,签订合同和购买飞机票可能非常困难,当日期不明确。
ISO 8601通过制定国际商定的日期表示方式来应对这种不确定性,该标准可以表示任何日期时间。
一句话,这个标准是一种日期时间表示法,是国际约定。
表示日期时间
- PT20.345S:表示20.345秒
- PT15M:表示15分钟
- PT10H:表示10小时
- PT2D:表示2天
- P3M:表示3个月
- P1Y:表示1年
似乎minute和month都是以M开头,为什么可以表示不同的意义?因为分在T前和T后,T表示时间,是一个分割字符,T之前的表示日期,之后的表示时间
- P1DT1M:表示每1天每1分钟
复杂的表示法
R/2021-04-07T19:07:24.000000+08:00/P1DT30S
- R表示永远重复,R2表示重复2次
- /是分割字符
- P是开始标记,表示执行间隔,类似于cron的作用
- 两个/之间是执行的开始时间
翻译过来就是:从2021年4月7号晚7点7分24秒(中国时区【+08:00】)开始,以每天30秒的频率,一直重复执行
参考:
- https://www.iso.org/iso-8601-date-and-time-format.html
- java.time.Duration