如何在 JavaScript 中解析 JSON 日期

在 JavaScript 中解析 JSON 日期

How to parse a JSON Date in JavaScript

要解析 JSON 日期:

  1. 使用该toJSON()方法获取Date
    对象的字符串表示形式。
  2. 将 JSON 字符串传递给Date()构造函数。
  3. 构造Date()函数将解析 ISO 字符串并创建一个Date
    对象。
索引.js
const json = new Date().toJSON(); console.log(json); // 👉️ "2022-01-23T09:04:45.904Z" const date = new Date(json); console.log(date); // 👉️ Sun Jan 23 2022 11:04:45


可以在有效
对象
调用
toJSON()方法。Date

该方法以 ISO 8601 格式返回给定日期的字符串表示形式。

您可以将调用该方法的结果传递给
Date()Date构造函数,以从 JSON 字符串
创建对象。

这是相同的示例,但使用了更手动的方法。

索引.js
const json = JSON.stringify(new Date().toISOString()); console.log(json); // 👉️ "2022-01-23T09:04:45.904Z" const date = new Date(JSON.parse(json)); console.log(date); // 👉️ Sun Jan 23 2022 11:04:45 // 👇️ "2022-01-23T09:04:45.904Z" console.log(date.toISOString());

我们使用
toISOString()
方法获取一个字符串,该字符串表示 ISO 8601 格式的给定日期 –
YYYY-MM-DDTHH:mm:ss.sssZ

使用该toISOString方法时,您始终会根据世界时获取日期。

toJSON()方法使用toISOString()引擎盖下的方法,因此两个代码片段是等效的,第二个代码片段更明确。

toISOString方法按照世界时返回结果,因此字符串显示的时间为09:04:45,而Date对象的时间设置为
11:04:45

这是因为我的时区2比协调世界时 (UTC) 早几个小时。

当谈到存储日期时,大多数时候,建议在数据库中存储时间戳或有效的 ISO 8601 字符串 (UTC)。

例如,如果您在数据库中存储当地时间午夜 (00:00),您将不知道在东京(日本)、巴黎(法国)、纽约(美国)等地是否是午夜。这些都是相隔数小时的不同时刻。

为了保持一致性,当您必须向用户呈现日期和时间时,您应该主要使用本地时间,但将实际值存储在 UTC (=GMT) 中。

Date在 JavaScript中获取 a 的 ISO 格式字符串非常容易。您只需使用该toISOString()方法即可。

索引.js
// 👇️ "2022-01-23T09:24:54.995z" console.log(new Date().toISOString());

使用该JSON.stringify方法可以轻松地将字符串转换为 JSON,然后可以通过网络传输。

构造Date()函数知道如何解析 ISO 8601 字符串,因此您所要做的就是解析 JSON 并将 ISO 字符串传递给构造函数。

索引.js
const json = JSON.stringify(new Date().toISOString()); console.log(json); // 👉️ "2022-01-23T09:04:45.904Z" const date = new Date(JSON.parse(json)); console.log(date); // 👉️ Sun Jan 23 2022 11:04:45

发表评论