日期時間在人類的生活中是有利的計事單元,它給予事件一個可見的有序排列。
當日期用數字表示時,可以用不同的方式解釋日期。例如,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