当前位置: 首页 > 面试题库 >

javascript toISOString()忽略时区偏移[重复]

羊新翰
2023-03-14
问题内容

我正在尝试将Twitter datetime转换为本地iso-string(对于prettyDate)已有2天了。我只是不正确的当地时间。

即时通讯使用以下功能:

function getLocalISOTime(twDate) {
    var d = new Date(twDate);
    var utcd = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(),
        d.getMinutes(), d.getSeconds(), d.getMilliseconds());

    // obtain local UTC offset and convert to msec
    localOffset = d.getTimezoneOffset() * 60000;
    var newdate = new Date(utcd + localOffset);
    return newdate.toISOString().replace(".000", "");
}

在newdate中一切正常,但是toISOString()再次将其返回到原始时间…有人可以帮助我从Twitterdate中获取iso中的本地时间,格式为:Thu,31May 2012 08:33:41 +0000


问题答案:

moment.js 很棒,但是有时候您不想为简单的事情拉很多依赖。

以下内容也适用:

var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds
var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1);
// => '2015-01-26T06:40:36.181'

slice(0, -1)摆脱了拖尾的Z代表祖鲁时区,可以通过自己的所取代。



 类似资料:
  • 我正在尝试将Twitter日期时间转换为本地ISO字符串(用于prettyDate),现在为2天。我只是没弄准当地时间.. im使用以下功能: 在newdate中,一切正常,但toISOString()将它再次返回到原始时间。有谁能帮我从Twitterdate格式为:Thu,31 May 2012 08:33:41+0000的iso中获取当地时间吗

  • 问题内容: 有没有更好的方法来忽略Angularjs中的时区: “ 2014-01-18 14:30:00”而不是“ 2014-01-18 15:30:00” http://jsfiddle.net/samibel/2rMXJ/ 问题答案: 这是一个例子: 只需管道另一个过滤器: 在您的模板中:

  • 我正在Debian8上使用PHP5.6.17。在建立owncloud之后,我注意到owncloud(而不是apache)自写的日志有错误的时区。 我调查了一下,好像,那一行: 这不关心任何时区设置。而不是欧洲/柏林(+1/+2)的时间,我总是得到UTC的时间。 在中,我设置了并且系统时间(debian)也是正确的。 即使运行如下所示,也会得到相同的输出(UTC): 对这个问题有什么想法吗?

  • 我使用的是“亚洲/曼谷”区域id。该偏移是从格林尼治时间UTC 07:00开始的。 但是当我做了下面的事情时,设置为“01/01/1900 7:00:00.000”时不是7:00 结果就是 周一一月一日07:00:00 ICT 1900 -402 周一一月一日06:00:00 ICT 1900 -420 我想知道偏移量是否在1900年1月1日早上7点左右发生了变化,所以我在维基百科上查了一下。ht

  • 一切都清楚一次是UTC中的日期:

  • 问题内容: 我使用以下代码来序列化从外部服务获得的响应,并作为我的服务的一部分返回json响应。但是,当外部服务返回带有时区(10:30:00.000-05.00)的时间值时,杰克逊会将其转换为15:30:00。如何忽略时区值? 问题答案: 您可以创建自定义解串器 告诉杰克逊使用您的自定义解串器 并像这样使用它: 您可以使用Jackson自定义序列化为服务响应添加时区信息