如何从 ISO 中提取日期和时间到本地日期和时间

How to extract date and time from ISO into local date and time

我在 ISO 中有一个日期和时间

"time": "2021-10-28T17:30:00.000Z"

下面是我现在提取日期和时间的操作:

var dateExtract = time.substring(0, 10);
var timeExtract = time.match(/\d\d:\d\d/);

但它给了我用 ISO 写的确切日期和时间。

我想要的是提取本地日期和时间中的日期和时间。我不知道该怎么做。

只需创建一个日期对象并使用 toLocaleString or toLocaleDateStringtoLocaleTimeString

const date = new Date("2021-10-28T17:30:00.000Z")
console.log(date.toLocaleString())
console.log(date.toLocaleDateString().replaceAll("/","-"))
console.log(date.toLocaleTimeString())

您获取日期的方法有误。 当您阅读日期时,应将其转换为您的语言环境,以便您从 UTC 日期

中获得准确的日期

您可以使用 JS Date() 函数或 moment 库

let d = new Date("2021-10-28T17:30:00.000Z")

d.toDateString()

d.toLocaleDateString()

检查日期函数以获取日期、月、年、时间、秒或时间戳

参考How to format a JavaScript date

https://www.w3schools.com/js/js_dates.asp

https://www.w3schools.com/js/js_date_formats.asp

或者你可以使用外部力矩库 https://momentjs.com/

使用 Date 实例。

let obj = {"time": "2021-10-28T17:30:00.000Z"}
const dateTime = new Date(obj.time);
const date  = dateTime.toLocaleDateString().replace(/\//g, '-');
// '28-10-2021'
const time = dateTime.toLocaleTimeString()
// '18:30:00' since I am in (+1)

也可以在这个类似的Question

中找到答案