SORU
19 EKİM 2011, ÇARŞAMBA


Nasıl Ruby DateTime için bir unix zaman damgası (epoch beri saniye) dönüştürmek için?

Nasıl Ruby için bir Unix zaman damgası (epoch beri saniye) DateTime dönüştürme?

CEVAP
19 EKİM 2011, ÇARŞAMBA


Üzgünüm, sinaps başarısızlık an kısa. İşte gerçek cevap.

Time.at(seconds_since_epoch_integer).to_datetime

Kısa örnek(bu mevcut sistemi zaman dilimi dikkate alan):

$ date  %s
1318996912

$ irb

ruby-1.9.2-p180 :001 > require 'date'
 => true 

ruby-1.9.2-p180 :002 > Time.at(1318996912).to_datetime
 => #<DateTime: 2011-10-18T23:01:52-05:00 (13261609807/5400,-5/24,2299161)> 

Diğer güncelleme(UTC)

ruby-1.9.2-p180 :003 > Time.at(1318996912).utc.to_datetime
 => #<DateTime: 2011-10-19T04:01:52 00:00 (13261609807/5400,0/1,2299161)>

Son Güncelleme: Ben, karşılaştırılan iyi çözümler bu iş parçacığı çalışırken bir HA service bir ya da iki hafta önce, gerçekten çok şaşırtıcı bulmak olduğunu Time.at(..) daha iyi performans DateTime.strptime(..) (güncelleme: eklendi daha fazla kriterler).

# ~ % ruby -v
#  => ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin13.0]

irb(main):038:0> Benchmark.measure do
irb(main):039:1*   ["1318996912", "1318496912"].each do |s|
irb(main):040:2*     DateTime.strptime(s, '%s')
irb(main):041:2>   end
irb(main):042:1> end

=> #<Benchmark ... @real=2.9e-05 ... @total=0.0>

irb(main):044:0> Benchmark.measure do
irb(main):045:1>   [1318996912, 1318496912].each do |i|
irb(main):046:2>     DateTime.strptime(i.to_s, '%s')
irb(main):047:2>   end
irb(main):048:1> end

=> #<Benchmark ... @real=2.0e-05 ... @total=0.0>

irb(main):050:0* Benchmark.measure do
irb(main):051:1*   ["1318996912", "1318496912"].each do |s|
irb(main):052:2*     Time.at(s.to_i).to_datetime
irb(main):053:2>   end
irb(main):054:1> end

=> #<Benchmark ... @real=1.5e-05 ... @total=0.0>

irb(main):056:0* Benchmark.measure do
irb(main):057:1*   [1318996912, 1318496912].each do |i|
irb(main):058:2*     Time.at(i).to_datetime
irb(main):059:2>   end
irb(main):060:1> end

=> #<Benchmark ... @real=2.0e-05 ... @total=0.0>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • colacas

    colacas

    29 EKİM 2006
  • Matthew Morrill

    Matthew Morr

    15 EKİM 2011