Ruby strftime(“Q”)坏了吗?
Ruby strftime(“Q”)坏了吗?,ruby,Ruby,%Q有效的说法: %Q - Number of milliseconds since 1970-01-01 00:00:00 UTC. 但它为我返回“%Q” 我正在使用RVM和Ruby 2.1.1 我是做错了什么,还是这是一个Ruby bug?您正在声明一个Time对象,而不是Date或DateTime对象Time的行为与Date或DateTime完全不同 请尝试以下方法: require 'date' Date.today.strftime("%Q") 希望有帮助。'%Q'由日期和日期时间
%Q
有效的说法:
%Q - Number of milliseconds since 1970-01-01 00:00:00 UTC.
但它为我返回“%Q”
我正在使用RVM和Ruby 2.1.1
我是做错了什么,还是这是一个Ruby bug?您正在声明一个
Time
对象,而不是Date
或DateTime
对象Time
的行为与Date
或DateTime
完全不同
请尝试以下方法:
require 'date'
Date.today.strftime("%Q")
希望有帮助。
'%Q'
由日期和日期时间对象使用,而不是时间对象。您可以尝试以下方法:
require 'date'
DateTime.now.strftime("%Q")
或
有一件事,没有提到答案,那就是为什么你回来了
“%Q”
。当指令不受支持,但您正在尝试传递时,也可能会出现错误
明确提到了这一点-
指令以百分比(%)字符开头任何未列为指令的文本都将传递到输出字符串。
其他答案提到了如何使用DateTime,但如果您更喜欢使用时间对象(例如,因为),则这是等效的:
Time.now.strftime(“%s%L”)
%s
是从纪元开始的秒,%L
是当前秒的毫秒。您可以将时间对象转换为日期时间,因为%Q
仅由日期或日期时间使用
Time.now.to_datetime.strftime('%Q')
%Q
不是为时间
对象列出的,而是为日期
列出的。Arup是正确的。您可以使用to_date
方法简单地将Time
实例转换为\u date实例,然后使用%Q格式标志。正如一条建议:在认为您已经在核心库中发现了错误之前,最好先深入研究文档,询问一些本应有效的东西为什么不起作用,如果文档和您的代码似乎正确,然后可能会认为这是一个错误。不过,在经过高度测试的库中发现bug的可能性很小。相反,这些bug大部分时间都会出现在代码中。但是,别担心,我们都至少做过一次。这就是我所需要的。我来这里也是因为Rubocop不喜欢到_datetime
。如果这么简单,为什么这不是时间的一部分?
require 'date'
Date.today.strftime("%Q")
Time.now.to_datetime.strftime('%Q')