Skip to content

Commit 1522230

Browse files
committed
Consider microseconds in maximum possible Calendar.ISO datetime (#7055)
1 parent f6aced3 commit 1522230

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

lib/elixir/lib/calendar/iso.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ defmodule Calendar.ISO do
1717

1818
@unix_epoch 62167219200
1919
@unix_start 1_000_000 * -@unix_epoch
20-
@unix_end 1_000_000 * (315569519999 - @unix_epoch)
20+
@unix_end 315569519999999999 - @unix_epoch * 1_000_000
2121
@unix_range_microseconds @unix_start..@unix_end
2222

2323
@type year :: 0..9999

lib/elixir/test/elixir/calendar_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,12 +230,12 @@ defmodule DateTimeTest do
230230
assert DateTime.from_unix(-62167219201) == {:error, :invalid_unix_time}
231231

232232
max_datetime = %DateTime{
233-
calendar: Calendar.ISO, day: 31, hour: 23, microsecond: {0, 0},
233+
calendar: Calendar.ISO, day: 31, hour: 23, microsecond: {999999, 6},
234234
minute: 59, month: 12, second: 59, std_offset: 0, time_zone: "Etc/UTC",
235235
utc_offset: 0, year: 9999, zone_abbr: "UTC"
236236
}
237237

238-
assert DateTime.from_unix(253402300799) == {:ok, max_datetime}
238+
assert DateTime.from_unix(253402300799999999, :microsecond) == {:ok, max_datetime}
239239
assert DateTime.from_unix(253402300800) == {:error, :invalid_unix_time}
240240

241241
minus_datetime = %DateTime{

0 commit comments

Comments
 (0)