moment-timezone icon indicating copy to clipboard operation
moment-timezone copied to clipboard

parsing time zone offset with second fails

Open palindrom615 opened this issue 5 years ago • 5 comments

moment("1899-06-28T23:27:52.000+08:27:52") // invalid date!

Above code results Invalid Date because moment cannot parse timezone offset with the second part.

Though the format is not standard, it is valid Korean standard time before GMT is adopted in Korea on April 1st, 1908. (see this: https://ko.wikipedia.org/wiki/%ED%95%9C%EA%B5%AD_%ED%91%9C%EC%A4%80%EC%8B%9C) Can this case be considered? This bug affects business logic on my work.

palindrom615 avatar Jul 24 '19 08:07 palindrom615

The document only says it was +08:28, not +08:27:52 though...

saschanaz avatar Jul 25 '19 02:07 saschanaz

@saschanaz ,

The document only says it was +08:28, not +08:27:52 though...

Yeah, Wikipedia does not mention about the second unit of offset. The premodern time standard is quite an ambiguous problem, but implementations like java ZonedDateTime are designed with later one: 1-934-0f55c3

palindrom615 avatar Jul 25 '19 02:07 palindrom615

The Intl implementation in Firefox also generates +08:27:52:

> Intl.DateTimeFormat("default", { timeZone: "Asia/Seoul", timeZoneName: "long" }).format(new Date("1900-01-01T00:00:00"))
"1/1/1900, GMT+08:27:52"

saschanaz avatar Jul 25 '19 02:07 saschanaz

According Wikipedia's Time in North Korea Document, "Hanyang (Seoul) which was calculated to be UTC+08:27:52[Ref: A Bridge between Conceptual Frameworks: Sciences, Society and Technology Studies edited by Raffaele Pisano]. In 1442".

image

Hoto-Cocoa avatar Jul 25 '19 17:07 Hoto-Cocoa

Fair point, but this is a bug in moment, not moment-timezone. I'll leave it here for now.

ichernev avatar Aug 27 '22 16:08 ichernev