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

  • ELawshea

    ELawshea

    26 Mayıs 2008
  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • The White House

    The White Ho

    21 Ocak 2006