2013-06-01 29 views
8

Bir datetime için UTC ofsetini almaya çalışıyorum. Ben almak istiyorum ne 00Ruby'de UTC ofsetini edinin

"-04:00" olduğunu: 2013 15:19:08 EDT -04

Cum, 31 Mayıs: datetime olarak kaydedilir. object.utc_offset yaptığımda, -14400 alırım. Hangi işlevi kullanmalıyım?

cevap

16

Sen strftime arıyoruz: ": 00 -04"

Time.now.strftime("%:z") 

olarak size ofset böyle versin.

+1

'z' harfini kullanmak için ':' bayrakını kullanmam gerektiğini buldum. (Yakut 1.9.3) I.e. Time.zone.now.strftime ("%: z") => "+01: 00" – tsdbrown

+1

Yan not, UTC ofseti saat diliminden farklıdır. Birden çok saat dilimi aynı UTC ofsetini paylaşır. Ve tek bir zaman dilimi ofseti, gün ışığından yararlanan tasarruflara göre değişecektir. –

3

Saniyeler içinde. Saat 3600'a bölün, ya da dakikalarca 60'a bölün.

Biçimlendirilmiş ofset dizesini istiyorsanız, vgoff'un yanıtını kullanın.

-1

vgoff ve Matt Johnson bana bunu yaptı, ancak daha fazla ayrıntı için sayfa 717-720 ve tablo 27.18'de Programlama Yakut 3. Baskı (The Pickaxe book), daha fazla ayrıntı için bakınız. % z, saat ofsetleri, % Z saat saat dilimini verir; MDT, PST, vb.