2009-04-14 25 views

cevap

121

Sadece bu konuda

datetime.datetime.fromtimestamp(ms/1000.0) 
+8

Not - Python 3'te (/), kayan nokta bölümü gerçekleştirir. İntegral bölümü gerçekleştirmek için (//) kullanın. –

+2

Aslında float bölünmesini istemiyor musun? Aksi takdirde 1 saniyenin altında herhangi bir hassasiyet kaybedersiniz (zaman damgasının kesirli kısmında tutulur). Kesilmeden ms/1000.0 kullanmanız daha iyidir. – Brian

+0

Tüm platformlar, fraksiyonel zaman damgalarını desteklemez - POSIX'in tam sayılarıyla yapışmaya daha iyi. –

5

Ne zaman damgası uygulamak için dönüştürmek? Ben 1970 yılından önce tarihleri ​​işlemek için üzerinde sayılır ve sonrasında edilebilir tahmin Python standart lib belirtildiği gibi 2038.

target_date_time_ms = 200000 # or whatever 
    base_datetime = datetime.datetime(1970, 1, 1) 
    delta = datetime.timedelta(0, 0, 0, target_date_time_ms) 
    target_date = base_datetime + delta 

: zaman damgası dışında ise, ValueError artırabilir

fromtimestamp() Platform C localtime() veya gmtime() işlevleri tarafından desteklenen aralığı değerleri. Bu durumun 1970'le yıllarca kısıtlı olması yaygındır.

+2

'utc_time = datetime (1970, 1, 1) + timedelta (milliseconds = millis)' i kullanabilirsiniz – jfs

İlgili konular