问题标签 [rfc3339]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
482 浏览

ios - 如何使用 NSDateFormatter 解析 ISO 8601/RFC 3339 时区?

我有一个这样的日期字符串(ISO 8601 组合日期和时间表示或 RFC 3339):

2010-09-04T19:13:00Z

但是如何配置 NSDateFormatter 以接受这种时区格式?

0 投票
4 回答
1264 浏览

python - 如何使用 Python strptime 解析例如 2010-04-24T07:47:00.007+02:00

有谁知道如何使用 Python 的 strptime 方法解析标题中描述的格式?

我有类似的东西:

我似乎无法弄清楚这是哪种时间格式。顺便说一句,我是 Python 语言的新手(我习惯于 C#)。

更新

这就是我根据以下建议(答案)更改代码的方式:

0 投票
3 回答
6143 浏览

cocoa - 在 iOS 4.x 和 MacOS X 10.6 中使用 NSDateFormatter 解析 rfc3339 日期:不可能?

在一般情况下,使用 NSDateFormatter 解析 rfc3339 日期似乎是不可能的。我错了吗?[2年后编辑:现在有办法!见下文和脚注。]

一个不太可塑的网络服务正在给我提供日期,例如:

他们使用的 jaxb 库的默认输出符合 Rfc3339。注意冒号,当偏移量不是文字“z”时,rfc3339需要它:

我想将这些解析为 NSDates。

NSDateFormatter 需要Unicode指定的语法模式,它为“PDT”、“-0800”、“GMT-08:00”等时区提供日期字段符号,但不提供“-08:00”。

谷歌搜索和其他类似的 SO 问题,只产生日期格式,如

后者需要文字“Z”,而前者坚持不存在冒号或存在“GMT”。但是,它们似乎在 ios 4.x 之前工作(可能通过完全丢弃 tz 偏移量;我的数据不清楚。)

在这一点上,我的选择很抱歉:

  • 发现一些未记录的格式说明符,或者将 NSDateFormatter 放入的一些奇怪模式,它将接受流浪冒号:longshot,可能不存在。[脚注]
  • 说服我的服务发布者将所有日期转换为祖鲁时间并指定“Z”:政治上具有挑战性。
  • 编写我自己的 NSFormatter 子类或研究好旧的strptime_l:工作。:)
  • 对我的输入进行字符串操作并去掉最后一个冒号:易碎且丑陋,但可能是阻力最小的路径。

我是否准确地理解了情况,当前的 NSDateFormatter 严格遵循 unicode 没有扩展;并且 unicode 格式不足以完全描述 rfc3339 日期?

[FOOTNOTE]三年后我回来补充一个小附录:从 iOS6/OSX10.8 开始,Unicode 和 Apple 已将此功能添加到格式字符串中。将撰写本文时的最新版本与其直接前身进行比较,并注意添加了 5 个“Z”,这会产生类似于“-08:00”的区域格式。因此,如果您可以摆脱对 5.x/10.7 的支持,那么就有一种新的正确方法可以做到这一点。我将保留以前的答案,因为当需要向后兼容时,它仍然是最好的方法。

0 投票
1 回答
1320 浏览

objective-c - 使用 NSDateFormatter 保持原始时区

我有像2011-01-19T20:30:00-5:00这样的字符串,我想将它们解析为 NSDate 但我想保留原始时区。

该片段给了我2011-01-20 02:30:00 +0100这也是正确的,但我希望在 NSDate 中保留原始时区 -0500 而不是我的本地时区 +0100。

0 投票
1 回答
13655 浏览

c# - C# 日期时间 - RFC 3339 格式

我正在尝试生成符合 RFC 3339 的日期字符串(即'2008-03-19T00:00:00.0000000-04:00')但是我似乎遇到了偏移量无效的问题。我正在使用以下内容:

但这会给我返回一个值,例如“1977-02-03T05:00:00Z”

我还尝试使用特定格式,例如

但结果相同。


请参阅此现有参考:如何解析 DateTime 并将其转换为 RFC 3339 日期时间格式?

0 投票
9 回答
39537 浏览

java - 如何使用 Java 解析 RFC 3339 日期时间?

我正在尝试解析作为 HTML5datetime输入字段中的值返回的日期。在 Opera 中试试看一个例子。返回的日期如下所示:2011-05-03T11:58:01Z

我想将其解析为 Java 日期或日历对象。

理想情况下,解决方案应具有以下内容:

  • 没有外部库(罐子)
  • 处理所有可接受的 RFC 3339 格式
  • 应该能够轻松验证字符串以查看它是否是有效的 RFC 3339 日期
0 投票
8 回答
67351 浏览

javascript - 生成类似于 Google Tasks API 的 RFC 3339 时间戳?

我正在构建一个与 Google Tasks 同步的应用程序。作为同步的一部分,我想比较本地任务和 API 任务,看看哪个最近发生了变化。

Google API 中的每个任务都包含一个updated属性,如下所示:

现在我想生成一个类似的时间戳,这样每次我更新我的应用程序上的任务时,它都会设置一个新updated值。要生成我正在使用的 RFC 3339 时间戳 - http://cbas.pandion.im/2009/10/generating-rfc-3339-timestamps-in.html会生成如下内容:

问题是,API 日期总是以“大于”本地日期的形式返回,即使本地日期较新。我猜这与两者之间的不同格式有关。

这里有两个日期,顶部来自 Google Tasks API(大约 10 分钟前),底部是一分钟前在本地生成的。当比较哪个更大时,它告诉我最重要的是。

我的格式错了吗?我在这里做错了什么?对此的任何帮助都非常感谢。

0 投票
7 回答
83227 浏览

python - 在 Python 中生成 RFC 3339 时间戳

我正在尝试在 Python 中生成RFC 3339 UTC 时间戳。到目前为止,我已经能够做到以下几点:

我的问题是设置 UTC 偏移量。

根据文档,classmethoddatetime.now([tz])采用可选tz参数 wheretz must be an instance of a class tzinfo subclassdatetime.tzinfoisan abstract base class for time zone information objects.

这就是我迷路的地方 - 为什么 tzinfo 是一个抽象类,我应该如何实现它?


注意:在 PHP 中它很简单timestamp = date(DATE_RFC3339);,这就是为什么我不明白为什么 Python 的方法如此复杂......)

0 投票
1 回答
1788 浏览

zend-framework - Zend Google Calendar API - 如何更改日期时间格式?

我将 Zend Framework Gdata 用于 Google 日历 API 和 RFC3339 中的日期时间输出(如下所示:2012-01-19T22:00:00.000-08:00)。我需要添加什么 php 代码才能将其转换为 UTC,使其看起来像这样:2012 年 1 月 19 日 8pm-11pm ?我找到了将 RFC 日期转换为字符串的 php 代码,但我对 php 的了解还不够,无法更改代码以使用 Zend Gdata 公式……正如您将在下面的代码中看到的那样,“日期“ 被称为“何时”......所以任何代码都必须以某种方式连接这两个......任何帮助表示赞赏!


感谢您提供此信息@vascowhite。

两个问题:

  1. 输出结果如下: string(23) "20 January 2012: 06:00"

  2. 我正在从我的谷歌日历中提取此信息,并将其输出到我的 html 页面中...我不是通过此 php 创建新事件...所以此代码只是转换了您编写的日期,它没有转换我的谷歌日历事件日期是从这段代码中提取的:

foreach ($event->when as $when) { echo "<td>" . $when->startTime . "</td>"; }

你知道怎么做吗?

谢谢你,苏珊

0 投票
3 回答
2392 浏览

objective-c - 在 iOS 中解析 RFC3339 日期字符串的最简单方法是什么?

Youtube API 以 RFC3339 格式返回日期字符串。我找到了如何手动解析它,无论如何,这太长了。

我可以让一个函数包含这个,但我想知道 Cocoa 基础或标准 C 或 POSIX 库上是否有预定义的方式来执行此操作。如果有的话,我想使用它。你能告诉我有没有更简单的方法?或者,如果您确认这是最简单的方法,将不胜感激:)