天天看點

ISO-8601,日期時間格式表示法的國際标準

日期時間在人類的生活中是有利的計事單元,它給予事件一個可見的有序排列。

當日期用數字表示時,可以用不同的方式解釋日期。例如,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
  1. R表示永遠重複,R2表示重複2次
  2. /是分割字元
  3. P是開始标記,表示執行間隔,類似于cron的作用
  4. 兩個/之間是執行的開始時間

翻譯過來就是:從2021年4月7号晚7點7分24秒(中國時區【+08:00】)開始,以每天30秒的頻率,一直重複執行

參考:

  • https://www.iso.org/iso-8601-date-and-time-format.html
  • java.time.Duration
下一篇: P1238 走迷宮

繼續閱讀