Ruby在C#中是否具有与TimeSpan相同的功能?

tox*_*xaq 13 ruby timespan

在C#中有一个TimeSpan类.它表示一段时间,并从许多日期操作选项返回.您可以创建一个并添加或减去日期等.

在Ruby和特定的rails中,似乎有很多日期和时间类,但没有代表一段时间的东西?

理想情况下,我喜欢使用标准日期格式选项轻松输出格式化日期的对象.

例如.

ts.to_format("%H%M")
Run Code Online (Sandbox Code Playgroud)

有这样的课吗?

如果我可以做类似的事情,那就更好了

   ts = end_date - start_date
Run Code Online (Sandbox Code Playgroud)

我知道减去两个日期会导致分隔所述日期的秒数,并且我可以从中完成所有日期.

Hun*_*len 5

你可以做类似这样的事情:

irb(main):001:0> require 'time'         => true
irb(main):002:0> initial = Time.now     => Tue Jun 19 08:19:56 -0400 2012
irb(main):003:0> later = Time.now       => Tue Jun 19 08:20:05 -0400 2012
irb(main):004:0> span = later - initial => 8.393871
irb(main):005:0>
Run Code Online (Sandbox Code Playgroud)

这只是以秒为单位返回一个时间,这看起来并不是那么漂亮,您可以使用该strftime()函数使其看起来很漂亮:

irb(main):010:0> Time.at(span).gmtime.strftime("%H:%M:%S") => "00:00:08"
Run Code Online (Sandbox Code Playgroud)


tox*_*xaq 1

最后我在@tokland的回答中提出了这个建议。不太确定如何使其成为合适的宝石,但它目前对我有用:

time_diff 的时间跨度分叉