0

さまざまな UTC 時刻を含む配列から最新の UTC 時刻を取得したいと考えています。以下のように、UTC の 2 つのタイムスタンプを比較できます。

#!/usr/bin/ruby
require "time"

a=Time.parse("2013-05-03 16:25:35 UTC")
b=Time.parse("2013-09-07 06:51:24 UTC")

if b < a
  puts "latest time is #{a}"
else
  puts "latest time is #{b}"
end

出力:

latest time is 2013-09-07 06:51:24 UTC

このように、2 つのタイム スタンプだけを比較しても問題ありません。しかし、配列には 2 つ以上の UTC タイム スタンプが含まれており、最新のものを選択する必要があります。配列要素のリストは次のとおりです。

2013-04-30 12:13:20 UTC
2013-09-07 06:51:24 UTC
2013-05-03 16:25:35 UTC
2013-08-01 07:28:59 UTC
2013-04-09 13:42:36 UTC
2013-09-04 11:40:20 UTC
2013-07-01 06:47:52 UTC
2013-05-03 16:21:54 UTC

配列から最新の時刻を選択したい2013-09-07 06:51:24 UTC

質問: UTC 時間に基づいてすべての配列要素を互いに比較する方法は?

ありがとう。

4

2 に答える 2

2

正確な方法はArray#sort、または直接的なものですEnumerable#max

require 'time'


time_ar = [ '2013-04-30 12:13:20 UTC',
            '2013-09-07 06:51:24 UTC',
            '2013-05-03 16:25:35 UTC',
            '2013-08-01 07:28:59 UTC',
            '2013-04-09 13:42:36 UTC',
            '2013-09-04 11:40:20 UTC',
            '2013-07-01 06:47:52 UTC',
            '2013-05-03 16:21:54 UTC'
          ]
time_ar.map(&Time.method(:parse)).sort.last
# => 2013-09-07 06:51:24 UTC
time_ar.map(&Time.method(:parse)).max
# => 2013-09-07 06:51:24 UTC
于 2013-09-07T19:35:16.450 に答える