datetime.nbt 901 B

123456789101112131415161718192021222324252627
  1. let epoch = datetime("1970-01-01T00:00:00Z")
  2. assert_eq(epoch -> unixtime, 0)
  3. assert_eq(epoch + 1000 milliseconds + 2 seconds -> unixtime, 3)
  4. let x = datetime("Wed, 20 Jul 2022 21:52:05 +0200")
  5. assert_eq(x -> unixtime, 1658346725)
  6. assert_eq(from_unixtime(1658346725) -> unixtime, 1658346725)
  7. # 2020 was a leap year
  8. let y = datetime("2020-02-28 20:00 UTC")
  9. assert_eq(format_datetime("%Y/%m/%d", y + 12 hours), "2020/02/29")
  10. let z = datetime("2021-02-28 20:00 UTC")
  11. assert_eq(format_datetime("%Y/%m/%d", z + 12 hours), "2021/03/01")
  12. # Regression test for #376
  13. let dt_376 = datetime("Fri, 23 Feb 2024 14:01:54 -0800")
  14. assert_eq(format_datetime("%Y-%m-%dT%H:%M:%S%:z", dt_376), "2024-02-23T14:01:54-08:00")
  15. # Julian date
  16. let dt_jd = datetime("2013-01-01 00:30:00 UTC")
  17. assert_eq(dt_jd -> julian_date, 2_456_293.520_833 days, 1e-6 days)
  18. assert_eq(epoch -> julian_date, 2_440_587.5 days, 1e-6 days)