我需要执行以下转换:
0 -> 12.00AM
1800 -> 12.30AM
3600 -> 01.00AM
...
82800 -> 11.00PM
84600 -> 11.30PM
我想到了这个:
(0..84600).step(1800){|n| puts "#{n.to_s} #{Time.at(n).strftime("%I:%M%p")}"}
这给了我错误的时间,因为时间。at(n)期望n是纪元后的秒数:
0 -> 07:00PM
1800 -> 07:30PM
3600 -> 08:00PM
...
82800 -> 06:00PM
84600 -> 06:30PM
对于这种转换,什么是最佳的、与时区无关的解决方案?
最佳答案
最简单的一行代码忽略了日期:
Time.at(82800).utc.strftime("%I:%M%p")
#-> "11:00PM"
关于ruby-on-rails - Ruby/Rails-如何将秒转换为时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3963930/