如何使用 Moment 正确处理 Bing 中的“/Date(...-0700)/”日期格式?

2023-12-24

我正在使用,它以这种格式返回日期:

/Date(1538245980000-0700)/

它看起来像以毫秒为单位的 Unix 时间戳,后面跟着一个时区。此刻文档声称能够正确处理这些 https://momentjs.com/docs/#/parsing/asp-net-json-date/,但他们也say that https://momentjs.com/docs/#/parsing/asp-net-json-date/

Unix时间戳和Date对象指的是特定的时间点,因此在构造时使用时区偏移量是没有意义的。

根据其他背景(这是周六早上巴士离开斯托尔的时间,距离墨尔本几个小时),我很确定上述时间应该是澳大利亚/墨尔本澳大利亚东部标准时间上午 11:33(+10:00)。

但使用 moment.timezone:

console.log(moment.parseZone('/Date(1538245980000-0700)/').format('h:mma Z'));

"11:33am -07:00"

这看起来确实是错误的:这是指某个时刻:

  • 太平洋时间上午 11:33
  • 世界标准时间下午 6:33
  • 墨尔本时间 4:33 AM

必应错了吗?为什么包含这个时区?

还是我使用Moment的方式不对?在这种情况下,将此格式转换为我的本地时区的正确时间的正确方法是什么?


这就是古时候的“ASP.NET JSON 日期格式 http://momentjs.com/docs/#/parsing/asp-net-json-date/”,由JavaScriptSerializer类(和其他)。斯科特·汉塞尔曼做到了2012 年的一篇博文 https://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx和其他人一样。 (一般来说,现代系统应该更喜欢 ISO 8601 / RFC 3339 格式。)

ASP.NET JSON 日期格式有两部分:

  • 第一部分始终是 Unix 时间戳(以毫秒为单位)。换句话说,自 1970-01-01 00:00:00.000 UTC 以来经过的毫秒数,不考虑闰秒。它不会根据时区进行调整 -它始终基于 UTC.

  • 第二部分是可选的,并且经常被省略。如果存在,它反映时区偏移量should对接收者有意义。但是,它通常是通过序列化生成的DateTime在 .NET 中.Kind财产是DateTimeKind.Local,在这种情况下,它将反映该日期基于server's当地时区。通常该时区是无关紧要的。请注意,与 ISO 8601 不同,基值是not进行调整以反映此偏移量。换句话说,偏移量是无关的。

因此,您给出的时间戳确实代表您列出的值。 (但请注意,墨尔本此时是 UTC+10,而不是 UTC+11。)

关于 Moment,请记住parseZone旨在将 moment 对象的时区偏移设置为输入中提供的时区偏移 (-0700在这种情况下)。如果您不关心该偏移量,那么您可以使用任何其他解析函数:

moment.parseZone('/Date(1538245980000-0700)/').format()
//=> "2018-09-29T11:33:00-07:00"  (always)

moment('/Date(1538245980000-0700)/').format()
//=> "2018-09-29T14:33:00-04:00"  (example based on the local time zone being US Eastern time)

moment.utc('/Date(1538245980000-0700)/').format()
//-> "2018-09-29T18:33:00Z"       (always, since parsing as UTC)

moment.tz('/Date(1538245980000-0700)/', 'Australia/Melbourne').format()
//=> "2018-09-30T04:33:00+10:00"  (always - since time zone provided)

在上面所有的例子中,只有第一个是-0700根本用过。

因此,如果您期望该值代表墨尔本的时间,那么是的,Bing 是错误的。也许数据还有一些其他设置或方面需要考虑。或者这可能是一个错误,如果是这样,您应该这样报告它。

如果是这样,并且您需要补偿,请执行以下操作:

moment.parseZone('/Date(1538245980000-0700)/').tz('Australia/Melbourne', true).format()
//=> "2018-09-29T11:33:00+10:00"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Moment 正确处理 Bing 中的“/Date(...-0700)/”日期格式? 的相关文章

  • 如何通过 SystemJs 在 Angular2 中使用时刻时区

    我正在使用 Angular2 通过Angular2 种子 https github com mgechev angular2 seed 使用 SystemJS 并尝试加载时刻时区 http momentjs com timezone doc
  • Google 地图 API 与 Multimap/Bing 地图 API

    我想知道是否有人有使用 Google Maps API 的经验和Multimap API 可以给出一个很好的理由来说明为什么一个比另一个更好 或者可能是优点和缺点的列表 我将致力于对当前使用 Multimap 经典 API 的网站进行完全重
  • pytz - 将 UTC 和时区转换为本地时间

    我有一个datetime以 utc 时区为例 utc time datetime datetime utcnow 和 pytz 时区对象 tz timezone America St Johns 正确的转换方法是什么utc time到给定的
  • 在 python 中,如何从日期和时间创建时区感知日期时间?

    在 Python 中 假设我的日期是 2016 年 12 月 25 日 如何创建该日期中午的时区感知日期时间 如果它与 Django 的时区处理兼容 那就加分了 诀窍是首先combine将天真的时间和日期转换为天真的日期时间 然后可以将此原
  • 如何在 Java 中获取英国夏令时偏移 (BST)

    在英国 我想获取当前与 UTC GMT 的偏移量 目前偏移量是1小时 但似乎没有办法找到这个 Code TimeZone timeZone TimeZone getDefault logger debug Timezone ID is ti
  • 获取特定时区的当前时间

    我有一个具有不同时区的日期和时间格式的数据框 我想将其与该时区的当前时间进行比较 所以我想在下面的 日期和时间 列中添加 1 小时 然后将其与该时区的当前时间进行比较 就像第一个一样 时区是 EDT 当前时间是 2017 07 18 10
  • 将 tzinfo 插入日期时间

    我有以下内容tzinfo具体子类定义 from datetime import datetime timedelta tzinfo class ManilaTime tzinfo def utcoffset self dt return t
  • 带时区的日期时间字符串

    我有一个以通用时间 UTC 形式存储的 DateTime 值2010 01 01 01 01 01 我想以这种格式在 EST 中显示它2010 01 01 04 01 01GMT 04 00 但是时区的 K 格式化程序在 ToString
  • 如何将C#中的时区信息转换为Java中的时区信息?

    我有一个系统 其中包含C 后端和一个Java前端 这C 后端与其他系统和一些移动设备通信 On the C 另一方面 我的任务之一是识别来自移动设备的时间戳的时区并创建相应的TimeZoneInfo目的 这是没有任何问题的工作 On the
  • 如何在 POSIXct 中获取一天的开始

    我的一天开始于2016 03 02 00 00 00 Not 2016 03 02 00 00 01 我如何开始一天的工作POSIXct当地时间 我的困惑可能来自于 R 认为这是 2016 03 01 的结束日期这一事实 鉴于 R 使用 I
  • 更改数据的时区值

    我必须导入不带时区信息的数据在其中 但是 我知道我要导入的数据的具体时区 但我需要timestamp with time zone数据库中的格式 一旦我导入它并将时间戳数据类型设置为timestamp with time zone Post
  • 在不同时区之间格式化时间的正确方法是什么?

    我想将 19 19 00 之类的时间格式化为不同的时区 如果我使用SimpleDateFormat它始终考虑纪元的开始 1970 01 01 有些时区在纪元开始时和现在有不同的偏移量 例如 现在与欧洲 基辅的默认偏移量是 UTC 0200
  • 使用 JavaScript 或 PHP 自动检测用户当前本地时间

    我经常需要根据用户的信息或受用户的影响来显示信息actual本地时间因时区而异 是否有可靠的方法来获取用户的当前时间和 或时区 关键的问题 服务器端代码基于网站主机或用户的ISP 客户端代码基于用户的系统时钟 太容易被操纵 关键问题 是否有
  • Moment.js 在 Firefox 中返回 NaN,但在 Chrome 中不返回 NaN

    我有以下代码行 moment 11 10 2013 09 03 AM diff moment minutes 在 Chrome 30 0 1599 101 中 以下行返回一个数字 它每分钟都会更改 因此确切的值不相关 在 Firefox 2
  • 找出某个日期时间自unix纪元以来的时间?

    我想找出 2009 年 10 月 1 日 9 00 BST 的 UNIX 时间 即自 Unix 纪元以来的秒数 我如何在 Linux 命令行上执行此操作 我知道你可以使用date UNIXTIME someformat 但是unix时间是我
  • 如何使用 PHP 获取格林威治标准时间?

    我有一台设置为 EST 的服务器 并且数据库中的所有记录都设置为 EST 我想知道如何将其设置为 GMT 我想为我的用户提供时区选项 I would strongly建议避免弄乱 UNIX 时间戳 使其看起来像不同的时区 这是我从惨痛的教训
  • 如何在 SQL 中的时区中使用“America/New_York”

    我有这段代码在 SQL 中运行良好 但是我想使用不同的时区格式 例如 America New York 代替 US Eastern Standard Time SELECT TODATETIMEOFFSET CAST CURRENT TIM
  • 如何在 Javascript 中获取时区名称(PDT、EST 等)? [复制]

    这个问题在这里已经有答案了 使用 Javascript 有没有办法根据用户的设备获取用户的时区名称 PDT EST 等 我尝试过的代码 const timezone jstz determine const userTimezone tim
  • 如何在 moment.js 中将日期格式化为 ISO 8601?

    这个文档提到moment ISO 8601作为格式化选项 从 2 7 0 http momentjs com docs parsing special formats http momentjs com docs parsing speci
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它

随机推荐

  • 如何处理 Shopify API 与 Shopify gem 的连接?

    您好 我正在我的 Shopify 应用中使用 Shopify gem 我正在寻找有关如何处理与 Shopify 的 API 连接的建议 我正在使用 webhooks 和delayed jobs 所以我需要一种方法来打开控制器外部的连接 目前
  • 为什么编译器说:“enable_if”不能用于禁用此声明

    template
  • imshow 的颜色条,以 0 为中心并带有符号刻度

    我想生成一个由多个数组组成的绘图网格 具有正值和负值 具有对数刻度 共享相同的颜色条 我已经实现了颜色条的共享部分 使用 ImageGrid 和常见的最大值和最小值 并且我知道在只有正值的情况下 我可以在 imshow 调用上使用 LogN
  • 无法设置 JFrame 的最大大小(Windows 下)

    我正在尝试限制 a 的最大尺寸JFrame 然而 这只适用于 Linux 在 Windows 下 JFrame可以自由调整大小 代码非常简单 public class TestMaxSize extends javax swing JFra
  • 媒体播放器、进度条

    这是播放媒体时更新进度条的正确方法吗 我以为MediaPlayer中会有回调 但我找不到它 mediaPlayer start final SeekBar progress SeekBar dialog findViewById R id
  • 如何获取进程列表

    我正在使用节点并将其安装在我的机器上 现在我想获取我的机器上运行的进程列表 以便我可以查看 Apache 是否正在运行 MySQL 是否已启动等 我怎样才能做到这一点 我的 js 文件中只有非常基本的代码 我什至不知道从哪里开始 这是我的代
  • Eslint 预期缩进 1 个制表符但发现 4 个空格错误

    我正在使用 VScode 和最新版本的 Eslint 这是我第一次使用 linter 使用制表符作为缩进时 我不断收到此 linting 错误 严重性 错误 message 预期缩进 1 个制表符 但发现有 4 个空格 缩进 在 4 5 来
  • Pytorch批量矩阵向量外积

    我正在尝试使用 PyTorch 生成向量矩阵外积 张量 假设向量v有尺寸p和矩阵M有尺寸qXr 乘积的结果应为 pXqXr Example size 2 v 0 1 size 2X3 M 0 1 2 3 4 5 size 2X2X3 v M
  • 使用画布的 3D 立方体。需要一点改进

    我使用以下代码制作了这个 3d 立方体 Matrix mMatrix canvas getMatrix canvas save camera save camera rotateY angle camera getMatrix mMatri
  • Python 字符串与字节数组之间的转换

    如何将人类可读的字符串转换为字节数组并返回 假设我有 Hello World 并且想要一个字节数组 然后从字节数组到相同的字符串 您可以使用bytearray https docs python org 2 library function
  • 将 collections.deque 转换为 python 列表的算法复杂度是多少?

    我试图确定将 collections deque 对象转换为 python 列表对象的复杂度是 O n 我想它必须获取每个元素并将其转换为列表 但我似乎找不到双端队列背后的实现代码 那么 Python 是否在幕后内置了一些更高效的东西 可以
  • nlp - 如何检测句子中的单词是否指向颜色/身体部位/车辆

    因此 正如标题所示 我想知道句子中的某个单词是否指向 1 一种颜色 The grass is green 因此 绿色 是颜色 2 身体的一部分 Her hands are soft 因此 手 是身体的一部分 3 车辆 I am drivin
  • 循环数据提取所有以 .co.uk 结尾的电子邮件地址

    我试图通过应对以下挑战来提高我的编程 PHP 技能 接下来的问题并不是关于代码问题 也不是我要求代码问题 而是关于应该应用的编程逻辑 9 email protected cdn cgi l email protection 0 0 1 1
  • 远程访问HDFS

    我有hadoop服务器在某些服务器上运行 比如说IP 192 168 11 7 其 core site xml 如下
  • DataTable 服务器端仅在我有少量数据时才工作

    我正在从 json 加载传递到有关数据表表的服务器端处理 我有两种环境 一种用于测试 一种用于生产 它们具有相同的功能和数据库结构 当我在测试环境中测试新进程时 脚本加载数据没有任何问题 5行 相同的脚本不会在生产环境中加载数据 1200
  • 使用opencv读取带有type_id opencv-image的xml文件

    嘿 我在读取 type id opencv image 的 xml 文件时尝试了很多搜索 我在这里查找的只是 opencv matrix 所有可用的帮助对我来说都是无用的 请帮我从 xml 文件中读取图像矩阵 我将 xml 文件的上半部分粘
  • 如何循环这个CSS滑块动画?

    我正在尝试创建一个 css 滑块 到目前为止我只成功地让它正确迭代一次 有没有办法让它无限循环而不改变最终结果 div class slider div class slides div class slider 1 div div cla
  • 如何获取匹配源的JRE/JDK?

    我希望在我的 Windows 计算机上获得至少一个 JRE JDK 级别 其中我的 JRE JDK 源与 JRE JDK 的确切级别相匹配 我的目的是能够在调试时进入系统类 关于如何执行此操作有什么建议吗 提前致谢 大多数有用的源代码都位于
  • MongoDB查询,通过userID查找所有

    这是我的数据库中 客户 的结构 id oid xxxxx user oid xxxxx name Test Mobile email null phone xxxxx completed false v 0 我正在尝试查询具有特定 user
  • 如何使用 Moment 正确处理 Bing 中的“/Date(...-0700)/”日期格式?

    我正在使用 它以这种格式返回日期 Date 1538245980000 0700 它看起来像以毫秒为单位的 Unix 时间戳 后面跟着一个时区 此刻文档声称能够正确处理这些 https momentjs com docs parsing a