Skip to content

Commit

Permalink
Adding an additional timestamp layout. (#918)
Browse files Browse the repository at this point in the history
  • Loading branch information
Tang8330 authored Sep 19, 2024
1 parent 45c5811 commit 2035fc3
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 3 deletions.
21 changes: 21 additions & 0 deletions lib/typing/ext/parse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,27 @@ func TestParseFromInterface(t *testing.T) {
_, err := ParseFromInterface(false, TimestampTzKindType)
assert.ErrorContains(t, err, "failed to parse colVal, expected type string or *ExtendedTime and got: bool")
}
{
// String - RFC3339MillisecondUTC
value, err := ParseFromInterface("2024-09-19T16:05:18.630Z", TimestampTzKindType)
assert.NoError(t, err)
assert.Equal(t, "2024-09-19T16:05:18.630Z", value.String(""))
assert.Equal(t, RFC3339MillisecondUTC, value.nestedKind.Format)
}
{
// String - RFC3339MicrosecondUTC
value, err := ParseFromInterface("2024-09-19T16:05:18.630000Z", TimestampTzKindType)
assert.NoError(t, err)
assert.Equal(t, "2024-09-19T16:05:18.630000Z", value.String(""))
assert.Equal(t, RFC3339MicrosecondUTC, value.nestedKind.Format)
}
{
// String - RFC3339NanosecondUTC
value, err := ParseFromInterface("2024-09-19T16:05:18.630000000Z", TimestampTzKindType)
assert.NoError(t, err)
assert.Equal(t, "2024-09-19T16:05:18.630000000Z", value.String(""))
assert.Equal(t, RFC3339NanosecondUTC, value.nestedKind.Format)
}
}

func TestParseFromInterfaceDateTime(t *testing.T) {
Expand Down
18 changes: 15 additions & 3 deletions lib/typing/ext/variables.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,16 @@ const (
)

var supportedDateTimeLayouts = []string{
// UTC
RFC3339MillisecondUTC,
RFC3339MicrosecondUTC,
RFC3339NanosecondUTC,
// RFC 3339
RFC3339Millisecond,
RFC3339Microsecond,
RFC3339Nanosecond,
time.RFC3339Nano,
// Others
ISO8601,
time.Layout,
time.ANSIC,
Expand All @@ -37,7 +46,10 @@ var SupportedTimeFormats = []string{

// RFC3339 variants
const (
RFC3339Millisecond = "2006-01-02T15:04:05.000Z07:00"
RFC3339Microsecond = "2006-01-02T15:04:05.000000Z07:00"
RFC3339Nanosecond = "2006-01-02T15:04:05.000000000Z07:00"
RFC3339MillisecondUTC = "2006-01-02T15:04:05.000Z"
RFC3339MicrosecondUTC = "2006-01-02T15:04:05.000000Z"
RFC3339NanosecondUTC = "2006-01-02T15:04:05.000000000Z"
RFC3339Millisecond = "2006-01-02T15:04:05.000Z07:00"
RFC3339Microsecond = "2006-01-02T15:04:05.000000Z07:00"
RFC3339Nanosecond = "2006-01-02T15:04:05.000000000Z07:00"
)

0 comments on commit 2035fc3

Please sign in to comment.