15
A
回答
26
您可以使用DateTime#parse
把一個字符串轉換爲DateTime
對象,然後通過3600和60分鐘乘以小時才秒數:
require 'date'
# DateTime.parse throws ArgumentError if it can't parse the string
if dt = DateTime.parse("10:30") rescue false
seconds = dt.hour * 3600 + dt.min * 60 #=> 37800
end
由於jleedev在評論中指出,你也可以使用Time#seconds_since_midnight
如果你有的ActiveSupport:
require 'active_support'
Time.parse("10:30").seconds_since_midnight #=> 37800.0
3
也許還有一個更簡潔的方式,而是:
t = Time.parse("18:35")
s = t.hour * 60 * 60 + t.min * 60 + t.sec
會做的伎倆。
8
1
require 'time'
def seconds_since_midnight(time)
Time.parse(time).hour * 3600 + Time.parse(time).min * 60 + Time.parse(time).sec
end
puts seconds_since_midnight("18:46")
所有優秀的答案,這是我最終使用。
7
又一實現:
Time.now.to_i - Date.today.to_time.to_i # seconds since midnight
1
您可以簡單地使用
Time.parse("10:30").seconds_since_midnight
0
在平原紅寶石最快的是時間部分的總和:
require 'benchmark'
require 'time'
Benchmark.bm do |x|
x.report('date') { 100_000.times { Time.now.to_i - Date.today.to_time.to_i } }
x.report('parse') { 100_000.times { Time.now.to_i - Time.parse('00:00').to_i } }
x.report('sum') { 100_000.times { Time.now.hour * 3600 + Time.now.min * 60 + Time.now.sec } }
end
user system total real
date 0.820000 0.000000 0.820000 ( 0.822578)
parse 1.510000 0.000000 1.510000 ( 1.516117)
sum 0.270000 0.000000 0.270000 ( 0.268540)
所以,這裏是一個需要考慮時區的方法,如果需要的話
def seconds_since_midnight(time: Time.now, utc: true)
time = time.utc if utc
time.hour * 3600 + time.min * 60 + time.sec
end
相關問題
- 1. 將時間轉換爲秒+毫秒秒
- 2. 在時代和後面將Ruby時間戳轉換爲秒
- 3. 如何將時間字符串轉換爲Ruby中的秒數
- 4. 將毫秒轉換爲時間碼
- 5. 如何將時間量轉換爲秒?
- 6. 將時間戳轉換爲毫秒 - MATLAB
- 7. 將時間碼轉換爲秒
- 8. Haskell將時間毫秒轉換爲UTCTime
- 9. 將時間戳轉換爲納秒
- 10. ruby轉換時間以秒計
- 11. 轉換時間爲毫秒?
- 12. 將時間秒從時間轉換爲本地時間
- 13. Ruby:將BST時間轉換爲UTC
- 14. 將負秒轉換爲小時:分:秒
- 15. 在毫秒中將毫秒轉換爲日期時間
- 16. Python將秒轉換爲日期時間日期和時間
- 17. 轉換日期和時間爲毫秒
- 18. 毫秒轉換爲基本時間
- 19. 轉換「時間前」秒爲Android
- 20. javascript時間轉換(秒 - =)
- 21. 秒轉換Firebase時間戳?
- 22. Bash - 將時間間隔字符串轉換爲nr。的秒
- 23. Ruby將Mysql時間戳轉換爲Mysql日期時間
- 24. 將十進制表示時間轉換爲小時,分鐘,秒
- 25. 如何將時間格式爲'00:04:13.67'轉換爲秒?
- 26. 程序將時間以秒爲單位轉換爲hh:mm:ss格式
- 27. 將ntp小時轉換爲毫秒
- 28. 將小時轉換爲秒數
- 29. NSString如何將小時轉換爲秒
- 30. 將毫秒轉換爲小時格式
這似乎需要主動支持。 – 2010-09-29 17:59:51
另外,還有'seconds_since_midnight'方法。 – 2010-09-29 18:01:01
關於ArgumentError ...有沒有辦法將數字轉換爲時間?所以說輸入只是「8」...我想要轉換爲「8:00」 – Shpigford 2010-09-29 18:01:23