Skip to content

Commit 064b4fa

Browse files
author
Wanasit Tanakitrungruang
committed
Fix (DE): Incorrectly parse casual time reference as date
1 parent eee7255 commit 064b4fa

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/locales/de/parsers/DETimeUnitRelativeFormatParser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default class DETimeUnitAgoFormatParser extends AbstractParserWithWordBou
1515
`(?:\\s*((?:nächste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?|vor|in)\\s*)?` +
1616
`(${NUMBER_PATTERN})?` +
1717
`(?:\\s*(nächste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?)?` +
18-
`\\s*(${matchAnyPattern(TIME_UNIT_DICTIONARY)})`,
18+
`\\s*(${matchAnyPattern(TIME_UNIT_DICTIONARY)})(?=\\W|$)`,
1919
"i"
2020
);
2121
}

test/de/de_time_units_casual_relative.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,15 @@ test("Test - de - relative date", function () {
106106
expect(result.start.isCertain("second")).toBeFalsy();
107107
});
108108
});
109+
110+
test("Test - de - false positive prevention for single-letter time units", function () {
111+
// Test that "Letzte A" in "Letzte Aktualisierun" doesn't match as "letzte a" (last year)
112+
// The word boundary check should prevent "A" from matching the time unit "a"
113+
testSingleCase(chrono.de, "Letzte Aktualisierun 03/12/2025", (result) => {
114+
expect(result.text).toBe("03/12/2025");
115+
expect(result.start.get("year")).toBe(2025);
116+
expect(result.start.get("month")).toBe(12);
117+
expect(result.start.get("day")).toBe(3);
118+
expect(result).toBeDate(new Date(2025, 12 - 1, 3, 12));
119+
});
120+
});

0 commit comments

Comments
 (0)