From f2ef0308acdec04cf4805d816947b0b8b9721d79 Mon Sep 17 00:00:00 2001 From: Alex Gubarev Date: Thu, 13 Aug 2026 16:59:02 +0300 Subject: [PATCH] Fix Date.to_iso8601/2 loses :format with custom calendar --- lib/elixir/lib/calendar/date.ex | 2 +- lib/elixir/test/elixir/calendar/date_test.exs | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/elixir/lib/calendar/date.ex b/lib/elixir/lib/calendar/date.ex index ad709413306..cbdbcf07bee 100644 --- a/lib/elixir/lib/calendar/date.ex +++ b/lib/elixir/lib/calendar/date.ex @@ -422,7 +422,7 @@ defmodule Date do def to_iso8601(%{calendar: _} = date, format) when format in [:basic, :extended] do date |> convert!(Calendar.ISO) - |> to_iso8601() + |> to_iso8601(format) end @doc """ diff --git a/lib/elixir/test/elixir/calendar/date_test.exs b/lib/elixir/test/elixir/calendar/date_test.exs index c7d33533335..81a233133f5 100644 --- a/lib/elixir/test/elixir/calendar/date_test.exs +++ b/lib/elixir/test/elixir/calendar/date_test.exs @@ -38,6 +38,16 @@ defmodule DateTest do end end + test "to_iso8601/2" do + date = ~D[2000-01-01] + assert Date.to_iso8601(date) == "2000-01-01" + assert Date.to_iso8601(date, :basic) == "20000101" + + holo_date = Calendar.Holocene.date(12001, 1, 1) + assert Date.to_iso8601(holo_date) == "2001-01-01" + assert Date.to_iso8601(holo_date, :basic) == "20010101" + end + test "to_string/1" do date = ~D[2000-01-01] assert to_string(date) == "2000-01-01"