From b959ecbc8175e2bf260f10b08965531bce9bcb7e Mon Sep 17 00:00:00 2001 From: satotake Date: Tue, 26 Oct 2021 02:49:44 +0900 Subject: [PATCH] htime: Set zone of datetime from from `go-toml` `go-toml/v2`'s unmarshaler does not specify zone name even if value has offset explicitly. To make time-formatting behaviour consistent, convert them into string in hugo. Close #8895 --- common/htime/time.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/htime/time.go b/common/htime/time.go index 33a77ead5..5071b0858 100644 --- a/common/htime/time.go +++ b/common/htime/time.go @@ -136,6 +136,11 @@ func ToTimeInDefaultLocationE(i interface{}, location *time.Location) (tim time. return vv.AsTime(location), nil case toml.LocalDateTime: return vv.AsTime(location), nil + // issue #8895 + // datetimes parsed by `go-toml` have empty zone name + // convert back them into string and use `cast` + case time.Time: + i = vv.Format(time.RFC3339) } return cast.ToTimeInDefaultLocationE(i, location) }