向私有(无公开文档)API发出GET请求以JSON格式返回数据。
日期的值如下所示:
AanmeldDatum: "/Date(1262300400000+0100)/"
另一个名为AangebodenSindsTekst
的变量意味着OfferedSinceText
,它的值为"8 augustus 2014"
。因此,未知的日期格式应该被解析为该特定值。
我想知道它是什么样的日期格式,我怎么能用Ruby将它转换成这样的2014-08-08
?
我试过这个:
require 'time'
t = '1262300400000+0100'
t2 = Time.parse(t)
# => ArgumentError: no time information in "1262300400000+0100"
答案 0 :(得分:1)
Ruby的Time类是你的朋友,特别是strptime
方法:
require 'time'
foo = Time.strptime('1262300400000+0100', '%N') # => 2014-08-08 16:57:25 -0700
foo = Time.strptime('1262300400000+0100', '%N%z') # => 2014-08-08 08:57:25 -0700
%N
告诉Ruby使用纳秒。如果你不需要其余的值,它会在第9位之后丢弃精度。对于我们大多数人来说,纳秒精度足够好。
%z
告诉Ruby找到时区偏移量,然后将其应用于返回值。
虽然parse
通常可以弄清楚如何撕开传入的弦,但它不是防弹的,也不是全知。对于速度,如果您的字符串一致,我建议学习并依赖strptime
。
答案 1 :(得分:1)
正如Tin Man在this回答中指出的那样,请改用以下内容:
Time.strptime('1262300400000+0100', '%Q%z')
答案 2 :(得分:-1)
自epoc以来可能是几毫秒,取出最后3个零并将其插入到unix时间戳转换器中,将于2009年12月31日发布
时间戳:1262300400
DATE(M / D / Y @ h:m:s):12/31/09 @ 11:00:00 pm UTC