简体   繁体   中英

What's the correct format of the default javascript Date returned object

When the new Date() is called, it returns something like this

Wed Jul 13 2022 16:15:35 GMT-0600 (Central Standard Time)

So I was curious what is the correct format used in that case? I tried building it with the following format: E MMM d yyyy H:mm:ss zzzz However the result was

Wed Jul 13 2022 16:15:00 GMT-06:00

This is the closest I can get. I've been searching the internet but can't find the correct format. By the way, the local used is en_US

Example:

let momentDate = moment(date, 'E MMM d yyyy H:mm:ss zzzz', true); 

If I execute the momentDate.isValid() it returns false.

From MDN : Date.prototype.toString() returns a string representation of the Date in the format specified in ECMA-262 .

That last part is described as:

  • Optionally, a timezone name consisting of:
    • space
    • Left bracket, ie "("
    • An implementation dependent string representation of the timezone, which might be an abbreviation or full name (there is no standard for names or abbreviations of timezones), eg "Line Islands Time" or "LINT"
    • Right bracket, ie ")"

Different date formatting libraries in different frameworks will have different ways to get a string representation of the time zone and, importantly, this is implementation-specific. This SO answer shows one way to get that value, basically by outputting it from a date and parsing the result. But you should not rely on it (or really any aspect of date outputs, apart from toISOString() ) having any consistency between browsers or other execution environments.

Until ECMAScript 2018 (edition 9), the format of the string returned by Date.prototype.toString was implementation dependent. Therefore it should not be relied upon to be in the specified format.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toString#description

output variations are by design, and allowed by the specification... you cannot expect to be able to compare the results of toLocaleString() to a static value
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString#avoid_comparing_formatted_date_values_to_static_values

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM