Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why Asia/Shanghai does not have LMT? #825

Closed
shellinger opened this issue Mar 22, 2020 · 1 comment
Closed

Why Asia/Shanghai does not have LMT? #825

shellinger opened this issue Mar 22, 2020 · 1 comment

Comments

@shellinger
Copy link

shellinger commented Mar 22, 2020

According to tzdb-2019c of IANA, Asia/Shanghai uses LMT before 1901, as file "asia" says:
# Beijing time, used throughout China; represented by Shanghai.
Zone Asia/Shanghai 8:05:43 - LMT 1901
\t \t \t 8:00 Shang C%sT 1949 May 28
\t \t \t 8:00 PRC C%sT

But in moment-timezone-with-data.js, it uses the packed data as:
"Asia/Shanghai|CST CDT|-80 -90|010101010101010101010101010|-1c2w0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6",

Apparently don't include the LMT part. How comes this inconsistence? Is it a bug?

BTW: What is the last number mean in the packed date (23e6 in above case). I can't find any explanation in all documents. Thanks!

@gilmoreorless
Copy link
Member

This looks like it's caused by a drop in data size in recent releases (see #768). Specifically, the latest data files are only handling 32-bit timestamps (which only allows for going back to 1901-12-13).

Data files built in older releases contain the expanded range:

$ grep Shanghai data/packed/2019a.json | head -n1
"Asia/Shanghai|LMT CST CDT|-85.H -80 -90|0121212121212121212121212121|-2M0U5.H 1zWo5.H Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6",

For your other question, the last value is the population field (in scientific notation, so 23e6 means 23,000,000). This is only used for ranking zones when using moment.tz.guess().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants