SORU
16 Mart 2012, Cuma


Nasıl Python datetime tamsayı zaman damgası dönüştürmek

Bir veri dosyası gibi damgaları içeren var "1331856000000". Ne yazık ki, biçim için pek çok döküman yok, zaman damgası biçimlendirilmiş nasıl emin değilim. Python standart datetime denedim.() fromordinal ve datetime.() fromtimestamp ve birkaç Diğerleri, ama hiç bir şey uymuyor. Belirli sayıda geçerli tarih (örneğin 2012-3-16) karşılık gelen oldukça emin, ama çok fazla değil.

Nasıl bir datetime için bu numarayı nasıl dönüştürebilirim?

CEVAP
16 Mart 2012, Cuma


datetime.datetime.fromtimestamp() muhtemelen Salise (JavaScript gibi) zaman yaşıyorsanız, ama fromtimestamp() Unix zaman damgası bekliyor hariç doğru, saniyeler içinde.

Öyle yap:

>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)

ve sonuç:

>>> date
datetime.datetime(2012, 3, 16, 1, 0)

Sorunuza cevap veriyor mu?

EDİT: J. F. Sebastian düzgün önerdidoğru bölümü kullanın1e3 (şamandıra 1000). Farkı olur, Eğer kesin sonuç almak istiyorsanız, bu nedenle cevabımı değiştirdim. Fark Python 2 varsayılan davranış sonuçları.her zaman döndüren x, (9 ** operatör kullanma) int (. int bölme int ^em>zemin bölümü). Tarafından yerine bölen 1000 (int) 1e3 bölen (temsili 1000 kaydır olarak) ya da float(1000) (ya da 1000. vb.), bölünme olurgerçek bölümü. Python 2.x float vb int, float float, float int bölme float döndürür. Ve zaman damgası fromtimestamp() yönteme geçirilen bazı kesirli bir parçası olduğunda, bu yöntemin sonucu da kesirli kısmı (mikrosaniye olarak) hakkında bilgi içerir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ipsy

    ipsy

    1 EKİM 2012
  • SamsTech

    SamsTech

    4 NİSAN 2014
  • Top10Series

    Top10Series

    26 Kasım 2008