Skip to content

Commit 543c3bc

Browse files
author
Wanasit Tanakitrungruang
committedNov 24, 2021
Fix: improve timezone adjustment (dayligth-saving related)
1 parent cfbee2d commit 543c3bc

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed
 

‎src/results.ts

+9-3
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export class ParsingComponents implements ParsedComponents {
142142

143143
date(): Date {
144144
const date = this.dateWithoutTimezoneAdjustment();
145-
return new Date(date.getTime() + this.getSystemTimezoneAdjustmentMinute() * 60000);
145+
return new Date(date.getTime() + this.getSystemTimezoneAdjustmentMinute(date) * 60000);
146146
}
147147

148148
private dateWithoutTimezoneAdjustment() {
@@ -160,8 +160,14 @@ export class ParsingComponents implements ParsedComponents {
160160
return date;
161161
}
162162

163-
private getSystemTimezoneAdjustmentMinute() {
164-
const currentTimezoneOffset = -new Date().getTimezoneOffset();
163+
private getSystemTimezoneAdjustmentMinute(date?: Date) {
164+
if (!date || date.getTime() < 0) {
165+
// Javascript date timezone calculation got effect when the time epoch < 0
166+
// e.g. new Date('Tue Feb 02 1300 00:00:00 GMT+0900 (JST)') => Tue Feb 02 1300 00:18:59 GMT+0918 (JST)
167+
date = new Date();
168+
}
169+
170+
const currentTimezoneOffset = -date.getTimezoneOffset();
165171
const targetTimezoneOffset =
166172
this.get("timezoneOffset") ?? this.reference.timezoneOffset ?? currentTimezoneOffset;
167173

0 commit comments

Comments
 (0)
Please sign in to comment.