fix: tz with DST date while DST is not active (#1340)#1352
fix: tz with DST date while DST is not active (#1340)#1352iamkun merged 2 commits intoiamkun:devfrom
Conversation
|
Glad to hear it. This should resolve most DST issues people have experienced. I would recommend adding tests for the bug that this fixes. Using that specific date you had in the issue should work for a good test. |
Codecov Report
@@ Coverage Diff @@
## dev #1352 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 176 176
Lines 1737 1737
Branches 394 394
=========================================
Hits 1737 1737
Continue to review full report at Codecov.
|
|
I've added 2 The exact date minutes before and after a DST change for 'Europe/Berlin' aren't any more special than dates in December and June for 'America/Los_Angeles' as used in the "DST" testcase. |
|
Side-Problems:
|
|
Is this pull request related to this issue? |
|
@alex-w0 I think so, but I'm not entirely sure. This bug fixes UTC offsets for DST-related timezones (pretty vague I know). Best way is going to be trying the failing tests from the issue after applying this change. |
|
nice catch |
|
@iamkun Do you need anything in order to merge this? |
|
I think this commit has just made things worse.
I'm specifically seeing this issue: #1437 So I checked this commit out on it('DST startOf(day)', () => {
const beforeDST = dayjs
.tz('2021-04-01 08:00', 'Australia/Melbourne')
.startOf('day')
.format()
expect(beforeDST).toBe('2021-04-01T00:00:00+11:00')
const afterDST = dayjs
.tz('2021-04-15 08:00', 'Australia/Melbourne')
.startOf('day')
.format()
expect(afterDST).toBe('2021-04-15T00:00:00+11:00')
})And the output of the second expect comes out like this: Note that the offset is +10:00 and not +11:00 |
## [1.10.5](v1.10.4...v1.10.5) (2021-05-26) ### Bug Fixes * add meridiem in ar locales ([#1375](#1375)) ([319f616](319f616)) * Added Zulu support to customParseFormat ([#1359](#1359)) ([1138a3f](1138a3f)) * fix Bengali [bn] locale monthsShort error ([a0e6c0c](a0e6c0c)) * fix missing types for ArraySupport plugin ([#1401](#1401)) ([b1abdc4](b1abdc4)) * fix Ukrainian [uk] locale ([#1463](#1463)) ([0fdac93](0fdac93)) * hotfix for `Duration` types ([#1357](#1357)) ([855b7b3](855b7b3)), closes [#1354](#1354) * timezone plugin DST error ([#1352](#1352)) ([71bed15](71bed15)) * Update duration plugin change string to number ([#1394](#1394)) ([e1546d1](e1546d1)) * update Duration plugin to support no-argument ([#1400](#1400)) ([8d9a5ae](8d9a5ae)) * Update Finnish [fi] locale to set yearStart ([#1378](#1378)) ([f3370bd](f3370bd)) * update Russian [ru] locale meridiem and unit tests ([#1403](#1403)) ([f10f39d](f10f39d)) * update Russian [ru] locale yearStart config ([#1372](#1372)) ([5052515](5052515)) * update Slovenian [sl] locale to set correct ordinal ([#1386](#1386)) ([cb4f746](cb4f746)) * update Spanish [es] locale to change month names to lowercase ([#1414](#1414)) ([9c20e77](9c20e77)) * update Swedish [sv] locale to set correct yearStart ([#1385](#1385)) ([66c5935](66c5935)) * update UTC plugin to support string argument like +HH:mm ([#1395](#1395)) ([656127c](656127c))
|
🎉 This PR is included in version 1.10.5 🎉 The release is available on: Your semantic-release bot 📦🚀 |
|
This commit seems to be the reason for quite a few problems, including #1795 , which seems to be similar to what @ashconnell reported almost a year ago. This is really critical. |
|
I think this also gives problems and then running toISOString() gives this output now I upgraded from 1.10.4 to 1.11.0 This is the result in 1.10.4 |
## [1.10.5](iamkun/dayjs@v1.10.4...v1.10.5) (2021-05-26) ### Bug Fixes * add meridiem in ar locales ([#1375](iamkun/dayjs#1375)) ([319f616](iamkun/dayjs@319f616)) * Added Zulu support to customParseFormat ([#1359](iamkun/dayjs#1359)) ([1138a3f](iamkun/dayjs@1138a3f)) * fix Bengali [bn] locale monthsShort error ([a0e6c0c](iamkun/dayjs@a0e6c0c)) * fix missing types for ArraySupport plugin ([#1401](iamkun/dayjs#1401)) ([b1abdc4](iamkun/dayjs@b1abdc4)) * fix Ukrainian [uk] locale ([#1463](iamkun/dayjs#1463)) ([0fdac93](iamkun/dayjs@0fdac93)) * hotfix for `Duration` types ([#1357](iamkun/dayjs#1357)) ([855b7b3](iamkun/dayjs@855b7b3)), closes [#1354](iamkun/dayjs#1354) * timezone plugin DST error ([#1352](iamkun/dayjs#1352)) ([71bed15](iamkun/dayjs@71bed15)) * Update duration plugin change string to number ([#1394](iamkun/dayjs#1394)) ([e1546d1](iamkun/dayjs@e1546d1)) * update Duration plugin to support no-argument ([#1400](iamkun/dayjs#1400)) ([8d9a5ae](iamkun/dayjs@8d9a5ae)) * Update Finnish [fi] locale to set yearStart ([#1378](iamkun/dayjs#1378)) ([f3370bd](iamkun/dayjs@f3370bd)) * update Russian [ru] locale meridiem and unit tests ([#1403](iamkun/dayjs#1403)) ([f10f39d](iamkun/dayjs@f10f39d)) * update Russian [ru] locale yearStart config ([#1372](iamkun/dayjs#1372)) ([5052515](iamkun/dayjs@5052515)) * update Slovenian [sl] locale to set correct ordinal ([#1386](iamkun/dayjs#1386)) ([cb4f746](iamkun/dayjs@cb4f746)) * update Spanish [es] locale to change month names to lowercase ([#1414](iamkun/dayjs#1414)) ([9c20e77](iamkun/dayjs@9c20e77)) * update Swedish [sv] locale to set correct yearStart ([#1385](iamkun/dayjs#1385)) ([66c5935](iamkun/dayjs@66c5935)) * update UTC plugin to support string argument like +HH:mm ([#1395](iamkun/dayjs#1395)) ([656127c](iamkun/dayjs@656127c))
## [1.10.5](iamkun/dayjs@v1.10.4...v1.10.5) (2021-05-26) ### Bug Fixes * add meridiem in ar locales ([#1375](iamkun/dayjs#1375)) ([319f616](iamkun/dayjs@319f616)) * Added Zulu support to customParseFormat ([#1359](iamkun/dayjs#1359)) ([1138a3f](iamkun/dayjs@1138a3f)) * fix Bengali [bn] locale monthsShort error ([a0e6c0c](iamkun/dayjs@a0e6c0c)) * fix missing types for ArraySupport plugin ([#1401](iamkun/dayjs#1401)) ([b1abdc4](iamkun/dayjs@b1abdc4)) * fix Ukrainian [uk] locale ([#1463](iamkun/dayjs#1463)) ([0fdac93](iamkun/dayjs@0fdac93)) * hotfix for `Duration` types ([#1357](iamkun/dayjs#1357)) ([855b7b3](iamkun/dayjs@855b7b3)), closes [#1354](iamkun/dayjs#1354) * timezone plugin DST error ([#1352](iamkun/dayjs#1352)) ([71bed15](iamkun/dayjs@71bed15)) * Update duration plugin change string to number ([#1394](iamkun/dayjs#1394)) ([e1546d1](iamkun/dayjs@e1546d1)) * update Duration plugin to support no-argument ([#1400](iamkun/dayjs#1400)) ([8d9a5ae](iamkun/dayjs@8d9a5ae)) * Update Finnish [fi] locale to set yearStart ([#1378](iamkun/dayjs#1378)) ([f3370bd](iamkun/dayjs@f3370bd)) * update Russian [ru] locale meridiem and unit tests ([#1403](iamkun/dayjs#1403)) ([f10f39d](iamkun/dayjs@f10f39d)) * update Russian [ru] locale yearStart config ([#1372](iamkun/dayjs#1372)) ([5052515](iamkun/dayjs@5052515)) * update Slovenian [sl] locale to set correct ordinal ([#1386](iamkun/dayjs#1386)) ([cb4f746](iamkun/dayjs@cb4f746)) * update Spanish [es] locale to change month names to lowercase ([#1414](iamkun/dayjs#1414)) ([9c20e77](iamkun/dayjs@9c20e77)) * update Swedish [sv] locale to set correct yearStart ([#1385](iamkun/dayjs#1385)) ([66c5935](iamkun/dayjs@66c5935)) * update UTC plugin to support string argument like +HH:mm ([#1395](iamkun/dayjs#1395)) ([656127c](iamkun/dayjs@656127c))
## [1.10.5](iamkun/dayjs@v1.10.4...v1.10.5) (2021-05-26) ### Bug Fixes * add meridiem in ar locales ([#1375](iamkun/dayjs#1375)) ([319f616](iamkun/dayjs@319f616)) * Added Zulu support to customParseFormat ([#1359](iamkun/dayjs#1359)) ([1138a3f](iamkun/dayjs@1138a3f)) * fix Bengali [bn] locale monthsShort error ([a0e6c0c](iamkun/dayjs@a0e6c0c)) * fix missing types for ArraySupport plugin ([#1401](iamkun/dayjs#1401)) ([b1abdc4](iamkun/dayjs@b1abdc4)) * fix Ukrainian [uk] locale ([#1463](iamkun/dayjs#1463)) ([0fdac93](iamkun/dayjs@0fdac93)) * hotfix for `Duration` types ([#1357](iamkun/dayjs#1357)) ([855b7b3](iamkun/dayjs@855b7b3)), closes [#1354](iamkun/dayjs#1354) * timezone plugin DST error ([#1352](iamkun/dayjs#1352)) ([71bed15](iamkun/dayjs@71bed15)) * Update duration plugin change string to number ([#1394](iamkun/dayjs#1394)) ([e1546d1](iamkun/dayjs@e1546d1)) * update Duration plugin to support no-argument ([#1400](iamkun/dayjs#1400)) ([8d9a5ae](iamkun/dayjs@8d9a5ae)) * Update Finnish [fi] locale to set yearStart ([#1378](iamkun/dayjs#1378)) ([f3370bd](iamkun/dayjs@f3370bd)) * update Russian [ru] locale meridiem and unit tests ([#1403](iamkun/dayjs#1403)) ([f10f39d](iamkun/dayjs@f10f39d)) * update Russian [ru] locale yearStart config ([#1372](iamkun/dayjs#1372)) ([5052515](iamkun/dayjs@5052515)) * update Slovenian [sl] locale to set correct ordinal ([#1386](iamkun/dayjs#1386)) ([cb4f746](iamkun/dayjs@cb4f746)) * update Spanish [es] locale to change month names to lowercase ([#1414](iamkun/dayjs#1414)) ([9c20e77](iamkun/dayjs@9c20e77)) * update Swedish [sv] locale to set correct yearStart ([#1385](iamkun/dayjs#1385)) ([66c5935](iamkun/dayjs@66c5935)) * update UTC plugin to support string argument like +HH:mm ([#1395](iamkun/dayjs#1395)) ([656127c](iamkun/dayjs@656127c))
@addisonElliott, your last suggestion made my new tests work and also no longer break the existing tests.
No complains about
keepLocalTime.