Hi @rxaviers, parseDate
appears to have a bug in parsing a DST date.
My environment:
Here's a Node script that demonstrates the problem. Note that the summer date is 5:32am PDT, but after globalize parse it's 4:32am PDT:
var Globalize = require("globalize"); Globalize.load( require("cldr-data/main/en/ca-gregorian"), require("cldr-data/main/en/dateFields"), require("cldr-data/main/en/timeZoneNames"), require("cldr-data/main/en/numbers"), require("cldr-data/supplemental/likelySubtags"), require("cldr-data/supplemental/timeData"), require("cldr-data/supplemental/weekData") ); Globalize.locale("en"); var winterDateISO = "2015-01-26T01:02:03.000Z"; var winterDate = new Date(winterDateISO); // Sun Jan 25 2015 17:02:03 GMT-0800 (PST) var summerDateISO = "2015-06-01T12:32:46.000Z"; var summerDate = new Date(summerDateISO); // Mon Jun 01 2015 05:32:46 GMT-0700 (PDT) var options = { datetime: "full" }; var winterDateFormatted = Globalize.formatDate(winterDate, options); console.log("Winter Formatted:", winterDateFormatted); // "Sunday, January 25, 2015 at 5:02:03 PM GMT-08:00" var winterDateParsed = Globalize.parseDate(winterDateFormatted, options); console.log("Winter Parsed:", winterDateParsed); // Sun Jan 25 2015 17:02:03 GMT-0800 (PST) console.log("Dates Match:", winterDate.getTime() === winterDateParsed.getTime()); // true console.log(); var summerDateFormatted = Globalize.formatDate(summerDate, options); console.log("Summer Formatted:", summerDateFormatted); // "Monday, June 1, 2015 at 5:32:46 AM GMT-07:00" var summerDateParsed = Globalize.parseDate(summerDateFormatted, options); console.log("Summer Parsed:", summerDateParsed); // Mon Jun 01 2015 04:32:46 GMT-0700 (PDT) (!!! One hour earlier) console.log("Dates Match:", summerDate.getTime() === summerDateParsed.getTime()); // false
Output:
Winter Formatted: Sunday, January 25, 2015 at 5:02:03 PM GMT-08:00
Winter Parsed: Sun Jan 25 2015 17:02:03 GMT-0800 (PST)
Dates Match: true
Summer Formatted: Monday, June 1, 2015 at 5:32:46 AM GMT-07:00
Summer Parsed: Mon Jun 01 2015 04:32:46 GMT-0700 (PDT)
Dates Match: false
I have a hunch that if this were summer right now, it would be the winterDate failing. 😄
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4