2010-03-21 29 views
19

YYYYMMDDHHmmSSOHH'mm 'biçiminde yerel bir zaman damgası oluşturmam gerekiyor. Bu OHH'mm ', +, - Z'den biri ve sonra saat ve dakikalar var.Python: tarih, saat biçimlendirme

Lütfen, yerel saat dilimini ve olası gün ışığından tasarruf etmeyi ifade eden böyle bir zaman damgasını nasıl alabilirim?

+0

? Ne denedin? Hangi hataları aldın? –

+0

Std lib docs okuyor ve saat dilimlerinin nereye gittiğini karıştırıyorlar ... – TarGz

+0

"kafa karıştırıcı"? Bir şey ifade edebilir. Aynı sorunu olan diğer kişilere yardımcı olmak için, sizi şaşırtan alıntı veya bağlantıyı sağlayabilir misiniz? –

cevap

28
import time 

localtime = time.localtime() 
timeString = time.strftime("%Y%m%d%H%M%S", localtime) 

# is DST in effect? 
timezone = -(time.altzone if localtime.tm_isdst else time.timezone) 
timeString += "Z" if timezone == 0 else "+" if timezone > 0 else "-" 
timeString += time.strftime("%H'%M'", time.gmtime(abs(timezone))) 
Zaman biçimlendirme için benziyordu
+0

Bu sadece bana "20100321142049-01'00 '" :) – badp

+0

Tam olarak ne istediğimi gösterdi! – TarGz

+0

Oh, hayır! Bir böcek var. Diyelim ki, birisi İtalya'da yaşıyor, saat dilimi daha sonra + 01'00 ', değil -01'00' ... – TarGz

8

time.strftime

Ve linux

, %z sadece -HHMM biçim ortam değişkeni düzgün ayarlanmış olup olmadığını size verecektir bunun için yapacağız.

>>> os.environ['TZ'] = 'EST' 
>>> time.strftime('%x %X %z') 
'03/21/10 08:16:33 -0500' 
+0

Nasıl? Zaman dilimi ofsetini nasıl elde edeceğinizin hiçbir yolu yoktur ve% Z sadece saat dilimini alır ..? – TarGz

+0

@TarGz - time.timezone, saniye cinsinden yereli bölgeye sahiptir, bunu yapmak için ikiyi birleştirmek isteyebilirsiniz – YOU

+0

Görünüşe göre,% z pltaform bağımlı – TarGz

İlgili konular