为什么 Time.strptime() 返回当前日期?

2024-02-01

向私有(无公共文档)API 发出 GET 请求会返回 JSON 格式的数据。

我感兴趣的值是日期。它返回 ASP.NET JSON 日期格式的日期。它看起来是这样的:

AanmeldDatum: "/Date(1406675114000+0200)/"

还有另一个名为 AangebodenSindsTekst 的变量,它的意思是 OfferedSinceText,其值为“8 augustus 2014”。因此,未知的日期格式应该被解析为该特定值。

我试过这个:

require 'time'

foo = Time.strptime('1406675114000+0200', '%N') # => 2014-08-12 13:38:46 +0200
foo = Time.strptime('1406675114000+0200', '%N%z') # => 2014-08-12 14:38:58 +0200

但它只是返回当前时间。

我百分百确定/Date(1406675114000+0200)/解析时,应返回日期2014-07-30.

问题是我如何确保它确实如此?


Using '%N' or '%N%z'似乎触发了一个错误strptime,得出当前日期/时间:

Time.strptime('1262300400000+0100', '%N') # => 2014-08-14 16:30:01 -0700
Time.strptime('1262300400000+0100', '%N%z') # => 2014-08-14 08:30:01 -0700

Using '%Q%z'解析为:

Time.strptime('1262300400000+0100', '%Q%z') # => 2010-01-01 00:00:00 +0100

The Time.strptime文档 http://www.ruby-doc.org/stdlib-2.1.2/libdoc/time/rdoc/Time.html#method-i-strptime没有提到'%Q',但是DateTime.strptime http://www.ruby-doc.org/stdlib-2.1.2/libdoc/time/rdoc/Time.html#method-i-strptime医生确实如此。

如果您已经解析了日期字符串,那么格式化它很容易:

foo = Time.strptime('1262300400000+0100', '%Q%z') # => 2010-01-01 00:00:00 +0100
foo.strftime('%Y-%m-%d %H:%M:%S %z') # => "2010-01-01 00:00:00 +0100"

See the strftime文档 http://www.ruby-doc.org/core-2.1.2/Time.html#method-i-strftime有关格式选项的更多信息。

请注意,有一些快捷方式,例如'%Y-%m-%d' and '%H:%M:%S':

foo.strftime('%F %T %z') # => "2010-01-01 00:00:00 +0100"

真正的问题是 .NET 如何序列化 JSON 中的日期。谷歌搜索显示了许多讨论此问题的页面:

  • "在 ASP.NET MVC 中处理 JSON 日期 http://www.developer.com/net/dealing-with-json-dates-in-asp.net-mvc.html"
  • "JSON 日期就是噩梦。另外,JSON.NET 和 ASP.NET Web API http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx"

.NET 并不是唯一这样做的。 Ruby 的 JSON 和 YAML 序列化器偶尔会做类似的事情,修复方法是查看正在输出的 JSON,然后提供to_json or to_s or to_h处理程序将产生最能代表数据的 JSON 输出。 JSON 应该可以在 JavaScript 和后端系统之间传输,而 .NET 并不是唯一提供该功能的语言。 Perl、Ruby、Python 以及谁知道有多少其他语言可以解析和发出 JSON,并且它们都需要遵循相同的规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Time.strptime() 返回当前日期? 的相关文章

随机推荐

  • SQL Server 中区分大小写的变量

    我有一个包含多个数据库的 SQL Server 我希望其中一个数据库对变量名称区分大小写 而其他数据库则不区分大小写 我需要更改设置 以便可以运行此脚本而不会出现错误 DECLARE A int DECLARE a int 如何将一个数据库
  • Google App Engine:通过 Python 使用自定义入口点

    我开始学习 Google App Engine 并使用 Flask 应用程序编写了一个基本的 main py 文件 该文件运行良好 这是前几行代码 from flask import Flask jsonify app Flask name
  • 与 Jackson 2.9.2 兼容的 Jersey 版本有哪些

    您能帮我解决这两个疑问 问题吗 任何使用过 Jackson 2 9 2 的人都可以告诉我 Jackson 2 9 2 的兼容 Jersey 版本是什么 我目前使用 Jersey 2 23 2 但它不适用于 Jackson 2 9 2 我收到
  • 使用 Kusto 获取每组的前 1 行

    我有一个表 我想使用 Kusto 查询语言获取每个组的最新条目 这是表格 文档状态日志 ID DocumentID Status DateCreated 2 1 S1 7 29 2011 3 1 S2 7 30 2011 6 1 S1 8
  • 发送电子邮件意向

    Intent intent new Intent Intent ACTION SEND intent setType text html intent putExtra Intent EXTRA EMAIL email protected
  • $lookup 具有相同的集合

    我是 MongoDB 新手 所以我不确定我的问题表述是否正确 我有一个集合 其中的数据如下所示 id ObjectId 66666 Id 994 PostType 1 AnswerId 334 CreationDate ISODate 19
  • 退出钛合金中的应用程序(iOS)

    iOS 相当于 win close var activity Titanium Android currentActivity activity finish Thanks 没有 钛 此外 苹果明确不鼓励这样做 iOS 应用程序从不显示关闭
  • Django模板,如何制作一个选择预定义值的下拉框?

    我试图创建一个下拉列表框 其中所选值等于从模板值传递的值 但没有成功 谁能看一下并告诉我我做错了什么
  • 具有插入曲线和透明背景的 CSS 形状

    我需要创建一个像这张图片一样的 CSS 形状 请检查这个fiddle http jsfiddle net KB2nY 我的工作 我已经创造了类似的东西 但我无法给它一条曲线 shape border left 70px solid tran
  • 停止执行 PerformSelector:

    非常基本的问题 self performSelector selector startSequence withObject nil afterDelay 1 0 但是 有没有办法在调用后阻止它呢 谢谢你的帮助 迪斯科 你要 NSObjec
  • AttributeError:既没有与关联的“InstrumentedAttribute”对象也没有“Comparator”对象

    我有一个表定义为 class Results db Model tablename results event id db Column db Integer db ForeignKey Events id primary key True
  • Visual Studio 中的代码指标计算

    以下代码指标计算的首选分数范围是多少 可维护性指标 圈复杂度 传承深度 类耦合 理论上的最佳值为 可维护性指数 100 数值越高 可维护性越好 圈复杂度 1 代码可以采用的不同路径的数量 继承深度 1 继承树中该类定义之上的类定义数量 不包
  • 如何监听 Fennec 扩展的页面加载?

    我正在为 Fennec 开发一个简单的扩展 它必须向每个加载的页面添加特殊的 HTML 元素 我创建了这个简单的overlay js var MyAddon onLoad function aEvent var appcontent doc
  • 是否有命名实体框架迁移的最佳或推荐实践? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 使用实体框架代码优先迁移时 是否有为每个迁移选择名称的最佳实践 例如 每个名称可能包含版本号或对模型所做的更改或两者 Add Migration
  • Python:os.stat().st_size 给出的值与 du 不同

    我正在创建一个实用程序 它将遍历目录并获取所有目录的子目录和文件的大小并存储该值 但是 尺寸计算不正确 这是我的类 它自动递归所有子目录 class directory Class that automatically traverses
  • 如何链接到 django-cms 中未翻译页面的语言主页?

    在 django cms 中 我有两种语言 其中一页荷兰语目前尚未翻译成英语 查看此页面时 语言选择器不提供英文翻译的链接 因为没有 但是 我想将链接链接到英文翻译以链接到主页 或其他一些英文页面 如果有意义的话 现在我可以自己创建所需的模
  • SQL添加一个新列,其值只能在几个固定选项中

    我想在我的数据表中添加一个带有 SQL 的新列 如下所示 CREATE TABLE brands Brand varchar 255 Contact varchar 150 Address varchar 255 Location varc
  • ImageScience 在更新 Rails 3 时中断

    我有一个工作 并且工作良好 的 ImageScience 安装 它对图像的各种尺寸进行了一些简单的调整大小 然后将它们复制到不同的目录 一切都很简单 这个小而简单的例程是在 rake 任务中 更新到 Rails 3 后 这个 rake 任务
  • 表单重置按钮是否会触发选择元素的 onChange 事件?

    我有一个带有一些选择元素的表单onChange附加到它们的事件 我希望即使有人单击表单重置按钮也能触发该事件 我的问题是 重置表单是否会触发选择元素onChange event 这是 jQuery 中的一个简单示例
  • 为什么 Time.strptime() 返回当前日期?

    向私有 无公共文档 API 发出 GET 请求会返回 JSON 格式的数据 我感兴趣的值是日期 它返回 ASP NET JSON 日期格式的日期 它看起来是这样的 AanmeldDatum Date 1406675114000 0200 还