【问题标题】:DateTime from UTC in Local Time format来自 UTC 的 DateTime,采用本地时间格式
【发布时间】:2015-02-05 08:05:12
【问题描述】:

我有一个Date Time,它以UTC 格式保存在服务器上。

返回给客户端的日期是这样的:2015-02-05T07:52:27.59

我需要一个 javascript 函数来解析日期字符串,并将其转换为客户端的local time

例如,javascript 应该将 2 小时添加到指定时间,因为客户端在 UTC +2 时开启。

我在互联网上尝试了很多示例,但没有一个有效。

考虑到整个互联网都在发生这种情况,我希望事情变得简单。

【问题讨论】:

  • 没有'localUTC'。 UTC 在任何地方都是一样的。您需要语言环境时间
  • 对不起,很糟糕。我对日期时间感到非常困惑

标签: javascript datetime


【解决方案1】:

Split 字符串,零引用月份,在创建新的Date 对象时使用Date.UTC。除非您指定其他内容,否则输出 toString 是本地时间。

var dateTime = '2015-02-05T07:52:27.59',
    parts = dateTime.split(/[-T:\.]/g);

parts[1] -= 1;
document.body.textContent = new Date(Date.UTC.apply(null, parts)).toString();

或者,如果您使用的是现代浏览器。将Z 附加到字符串并依赖特定浏览器的Date 解析。

var dateTime = '2015-02-05T07:52:27.59Z';

document.body.textContent = new Date(dateTime).toString();

【讨论】:

  • 正是我所希望的
【解决方案2】:

只需将 'UTC' 附加到字符串:

var date = new Date('6/29/2011 4:52:48 PM UTC');
date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"

Convert UTC date time to local date time using JavaScript

【讨论】:

  • 如果我在末尾添加“UTC”new Date("2015-02-05T07:52:27.59 UTC") 无效,则我拥有的日期格式无效
  • 如何创建日期时间对象?
  • 我认为 toString() 方法会自动转换它,因为我提醒了日期并且我得到了 GMT + 1(而不是 GMT,它等于 UTC)
  • 似乎 .toString() 会自动转换它,如果它包含神奇的“Z”
  • 对我来说,它会提醒 Thu Feb 05 2015 07:52:27 GMT+0200 (GTB Standard Time,而它应该是 09:52:27 点
猜你喜欢
  • 2015-06-03
  • 2012-02-22
  • 2017-06-15
  • 1970-01-01
  • 2011-05-29
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多