openmeter / pkg /datetime /format.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 9)
fea99b3 verified
Raw
History Blame Contribute Delete
902 Bytes
package datetime
import "strings"
// Format extends the time.Time.Format method to support the RFC 9557 format
func (t DateTime) Format(layout string) string {
timezone := t.Location().String()
// If the timezone is not set use the fallback layout
if timezone == "" {
return t.Time.Format(fallbackRFC9557FormatLayout(layout))
}
// Replace the timezone name layout part with the timezone name
return strings.ReplaceAll(t.Time.Format(layout), layoutTZName, timezone)
}
// fallbackFormatLayout can be used to convert a RFC9557 layout to a ISO8601 layout when no timezone is provided
func fallbackRFC9557FormatLayout(layout string) string {
switch layout {
case RFC9557Layout:
return ISO8601Layout
case RFC9557MilliLayout:
return ISO8601MilliLayout
case RFC9557MicroLayout:
return ISO8601MicroLayout
case RFC9557NanoLayout:
return ISO8601NanoLayout
default:
return layout
}
}