Skip to content

Commit

Permalink
fix ISO year-ordinal strings with offsets (#966)
Browse files Browse the repository at this point in the history
Fixes #892
  • Loading branch information
icambron committed Jul 2, 2021
1 parent e0c8f87 commit 1f99fdd
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
1 change: 1 addition & 0 deletions scripts/bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ global.Duration = luxon.Duration;
global.Interval = luxon.Interval;
global.Settings = luxon.Settings;
global.Info = luxon.Info;
global.IANAZone = luxon.IANAZone;
8 changes: 6 additions & 2 deletions src/impl/regexParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,11 @@ const extractISOWeekTimeAndOffset = combineExtractors(
extractISOTime,
extractISOOffset
);
const extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);
const extractISOOrdinalDateAndTime = combineExtractors(
extractISOOrdinalData,
extractISOTime,
extractISOOffset
);
const extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);

/**
Expand All @@ -279,7 +283,7 @@ export function parseISODate(s) {
s,
[isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],
[isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],
[isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],
[isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],
[isoTimeCombinedRegex, extractISOTimeAndOffset]
);
}
Expand Down
14 changes: 14 additions & 0 deletions test/datetime/regexParse.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,20 @@ test("DateTime.fromISO() accepts year-ordinalTtime", () => {
});
});

test("DateTime.fromISO() accepts year-ordinalTtime+offset", () => {
const dt = DateTime.fromISO("2016-200T09:24:15.123+0600", { setZone: true });
expect(dt.zone.name).toBe("UTC+6");
expect(dt.toObject()).toEqual({
year: 2016,
month: 7,
day: 18,
hour: 9,
minute: 24,
second: 15,
millisecond: 123
});
});

test("DateTime.fromISO() accepts hour:minute:second.millisecond", () => {
const { year, month, day } = DateTime.now();
isSame("09:24:15.123", {
Expand Down

0 comments on commit 1f99fdd

Please sign in to comment.