【发布时间】:2011-02-13 21:55:14
【问题描述】:
我需要将以下时间字符串转换为自午夜(一天开始)以来的秒数。我一直在寻找 Ruby Api 但无法提出解决方案。任何想法将不胜感激。
time_string = '4:12:38 PM ET'
【问题讨论】:
-
谢谢。感谢您的意见。
我需要将以下时间字符串转换为自午夜(一天开始)以来的秒数。我一直在寻找 Ruby Api 但无法提出解决方案。任何想法将不胜感激。
time_string = '4:12:38 PM ET'
【问题讨论】:
要将您的字符串转换为时间使用
new_time = Time.parse(time_string)
这将返回一个 Time 对象。然后,您可以像这样从给定时间中减去午夜的时间:
midnight = Time.local(2010,2,13,0,0,0)
seconds = (new_time - midnight).to_i # Number of seconds as an integer, .to_f works too
当然,对于 Time.local,您应该使用今天的日期,而不是上面的硬编码值。
【讨论】:
如果您安装了 active_support,您也可以这样做
require 'rubygems'
require 'time'
require 'active_support/core_ext/time/calculations'
puts Time.parse('4:12:38 PM ET').seconds_since_midnight.to_i
【讨论】: