Skip to content

Commit 04c0d6d

Browse files
mfelscheLicenser
authored andcommitted
Fix parsing RFC3339 strings
Signed-off-by: Matthias Wahl <[email protected]>
1 parent d0ff561 commit 04c0d6d

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
### Fixes
6+
7+
* Fix parsing with `std::datetime::formats::RFC3339` to allow for `Z` (zulu) timezones.
8+
59
### New features
610

711
* Add configuration option `path_style_access` to `s3_streamer` and `s3_reader` connectors.

tremor-cli/tests/stdlib/std/all.tremor

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -815,9 +815,25 @@ test::suite({
815815
"test": test::assert("datetime::with_timezone", datetime::with_timezone({"timestamp": 0, "tz": datetime::timezones::EUROPE_LONDON}, datetime::timezones::ATLANTIC_JAN_MAYEN), {"timestamp": 0, "tz": datetime::timezones::ATLANTIC_JAN_MAYEN})
816816
}),
817817
test::test({
818-
"name": "parse",
818+
"name": "parse RFC3339",
819819
"test": test::assert("datetime::parse", datetime::parse("2022-11-09T14:46:11.499274824+01:00", datetime::formats::RFC3339), 1668001571499274824)
820820
}),
821+
test::test({
822+
"name": "parse RFC3339 Z",
823+
"test": test::assert("datetime::parse", datetime::parse("2023-04-23T13:11:37.285Z", datetime::formats::RFC3339), 1682255497285000000)
824+
}),
825+
test::test({
826+
"name": "parse RFC2822",
827+
"test": test::assert("datetime::parse", datetime::parse("Fri, 21 Nov 1997 09:55:06 -0600", datetime::formats::RFC2822), 880127706000000000)
828+
}),
829+
test::test({
830+
"name": "format RFC2822",
831+
"test": test::assert("datetime::format", datetime::format(880127706000000000, datetime::formats::RFC2822), "Fri, 21 Nov 1997 15:55:06 +0000")
832+
}),
833+
test::test({
834+
"name": "format RFC2822 with timezone",
835+
"test": test::assert("datetime::format", datetime::format(datetime::with_timezone(880127706000000000, datetime::timezones::US_CENTRAL), datetime::formats::RFC2822), "Fri, 21 Nov 1997 09:55:06 -0600")
836+
}),
821837
test::test({
822838
"name": "year",
823839
"test": test::assert("datetime::year", datetime::year(0), 1970)

tremor-script/lib/std/datetime/formats.tremor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
## Format for [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339#section-5.6)
66
##
77
## This format is also ISO8601 compatible.
8-
const RFC3339 = "%Y-%m-%dT%H:%M:%S%.f%:z";
8+
const RFC3339 = "%+";
99

1010
## Format for [RFC 2822](https://www.rfc-editor.org/rfc/rfc2822#section-3.3)
1111
##

0 commit comments

Comments
 (0)