Ruby strftime("%Q")坏了吗?

k10*_*107 3 ruby

strftime文档声称%Q工作原理:

%Q - Number of milliseconds since 1970-01-01 00:00:00 UTC.
Run Code Online (Sandbox Code Playgroud)

但它为我返回"%Q".

2.1.1 :054 > date = Time.now
 => 2014-06-10 12:28:57 -0700
2.1.1 :055 > date.strftime("%Q")
 => "%Q"
Run Code Online (Sandbox Code Playgroud)

我正在使用RVM和Ruby 2.1.1.

我做错了什么,或者这是一个Ruby bug?

Luk*_*uke 6

你声明一个Time对象,而不是一个DateDateTime对象.Time的行为与Date或完全不同DateTime.

试试这个:

require 'date'
Date.today.strftime("%Q")
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.


Mic*_*nan 5

其他答案提到了如何使用 DateTime 执行此操作,但是如果您更喜欢使用 Time 对象(例如因为Rubocop 的默认设置抱怨使用 DateTime.now),那么这等效:

Time.now.strftime("%s%L")

%s是自纪元以来的秒数,%L是当前秒的毫秒数。