Javascript-将ISO8601 UTC时间转换为客户的本地时间

时间:2019-03-19 17:38:50

标签: javascript c# asp.net-mvc-5

我将asp.net mvc 5用于我的网站,并将交易日期作为DateTime对象从模型发送到使用ISO8601格式的UTC视图中的视图-2019-03-15T22:32:04.9143842Z

如果我从模型中收到2019-03-15T22:32:04.9143842Z作为字符串,则需要一个函数,该函数可以将其转换为客户端的本地时间。因此,如果客户端使用PST,则应将其转换为PST。

2 个答案:

答案 0 :(得分:0)

此日期时间类型/标准为iso 8601。 https://en.wikipedia.org/wiki/ISO_8601 如何使用javascript解析iso 8601日期有很多不同类型的可能性,其中一种是

new Date(isoDateString)

其他包括诸如https://github.com/datejs/DatejsDate.parse(isoDateString))之类的软件包,或者您自己手动对其进行解析。
然后,您可以获取客户端的时区并将其更改为时区/或任何所需的时区。

答案 1 :(得分:0)

您可以简单地将此格式传递给Date对象构造函数(或传递给Date.parse)。

var d = new Date("2019-03-15T22:32:04.9143842Z");

最后的Z很关键,因为它表示UTC。

然后,您可以使用诸如.toString().toLocaleString()之类的发出本地时间的函数。您可以找到Date对象引用on MDN here

在美国太平洋时区运行时:

console.log(d.toString());
//=> "Fri Mar 15 2019 15:32:04 GMT-0700 (Pacific Daylight Time)"

或者,您可以使用Date-fnsLuxonMoment之类的库以特定方式将日期格式设置为字符串。