Comments (5)
This isn't a bug in moment-timezone. It's a hole in the tz database.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Japan 1948 only - May Sun>=1 2:00 1:00 D
Rule Japan 1948 1951 - Sep Sat>=8 2:00 0 S
Rule Japan 1949 only - Apr Sun>=1 2:00 1:00 D
Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
9:00 - JST 1896
9:00 - CJT 1938
9:00 Japan J%sT
Asia/Tokyo
is defined as anything after 1938 follows the Japan
rule, but that rule is only defined from the first Sunday following May 1st 1948 (which happens to be May 2nd) forward.
from moment-timezone.
Actually, I take back my last comment. I was misinterpreting the data. there is indeed a bug here.
Asia/Tokyo
should follow the Japan
rule should be followed for anything after 1938. From there forward it should be fixed to UTC+09:00
- except for those ranges defined in the rule, where it should follow the DST logic for those particular ranges.
Since 1948-05-01T16:59:59+00:00
is not in any range in the Japan
rule, it doesn't follow DST, but it is still UTC+09:00
and should be considered "standard time".
Question - how can we assume that "S" is the correct letter to replace here?
from moment-timezone.
Ok, I found a lot of good information here: How to read the tz database
In particular:
One wrinkle, not fully explained in zic.8.txt, is what happens when switching to a named rule. To what values should the SAVE and LETTER data be initialized?
- If at least one transition has happened, use the SAVE and LETTER data from the most recent.
- If switching to a named rule before any transition has happened, assume standard time (SAVE zero), and use the LETTER data from the earliest transition with a SAVE of zero.
We don't appear to be doing that. The replace is done in Zone.prototype.format
:
format : function (rule) {
return this.letters.replace("%s", rule.letters);
}
The problem is that in this case, the rule is empty. The format
function needs to be expanded to consider the logic above.
from moment-timezone.
This issue kind of disappears when switching to the new data format.
from moment-timezone.
Very nice. Thanks Tim!
from moment-timezone.
Related Issues (20)
- The DST calculation does not take effect. HOT 3
- import moment from 'moment-timezone'; import 'moment/min/locales'; not working HOT 5
- Can not set default timezone HOT 2
- Wrong timezone conversion
- error TS2350: Only a void function can be called with the 'new' keyword. new moment(); HOT 3
- 2023d is out HOT 2
- Some tz.guess() tests are failing in 2024 HOT 1
- Canada/Yukon offset before 1967 May 27 is wrong HOT 1
- How does moment.tz(unixTimestamp,timezone) and moment.tz.guess() work? HOT 1
- How can I use moment-timezone with 10 year data range with Typescript types HOT 1
- Moment Timezone has no data for Europe/Ljubljana
- Kazakhstan will switch to a single time zone, UTC+05:00, on March 1, 2024. HOT 1
- 2024a released HOT 1
- Test failure due to rounding error HOT 2
- Timezone Error in v0.5.45 HOT 1
- Wrong Kazakhstan Timezone in 0.5.45 HOT 1
- Incorrect Timezone Offset for 'Asia/Almaty' HOT 1
- The moment-timezone get the time zone of Kazakhstan Asia/Almaty in January 2024 to the DST. HOT 3
- Is there an alternative to moment-timezone with bundled IANA TZ DB? HOT 1
- Getting spilt issue while using moment and moment-timezones HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from moment-timezone.