From f2feb7cf7a0c7d7aba41c8a50869a6292f2f46f2 Mon Sep 17 00:00:00 2001 From: nakamura Date: Tue, 18 Feb 2025 05:44:39 +0000 Subject: [PATCH] Fix datetime formatting and timezone handling This ensures consistency across public methods for `DateTime`, `Date`, and `Time` which all had slight differences. We remove the `default` option from `I18n.localize`, because an exception is thrown with `data.in_time_zone` when the `data` is `nil`, the `default` option is not meaningful. We don't need a fallback for the time zone, as with `Time.zone`, one is already defined. We also don't need to do a string conversion, as `in_time_zone` supports accepting a `Time.zone` object. --- lib/administrate/field/date_time.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/administrate/field/date_time.rb b/lib/administrate/field/date_time.rb index 2263af4d2a..28f4c74457 100644 --- a/lib/administrate/field/date_time.rb +++ b/lib/administrate/field/date_time.rb @@ -13,8 +13,7 @@ def date def datetime I18n.localize( data.in_time_zone(timezone), - format: format, - default: data + format: format ) end @@ -25,7 +24,7 @@ def format end def timezone - options.fetch(:timezone, ::Time.zone.name || "UTC") + options.fetch(:timezone, ::Time.zone) end end end