SORU
22 Temmuz 2010, PERŞEMBE


() Python strptime ve dilimleri?

Blackberry TESTLER yedekten CSV dumpfile, İPDDump kullanıyorum yarattı. Burada tarih/saat dizeleri böyle bir şey EST Avustralya (saat dilimi):

Tue Jun 22 07:46:22 EST 2010

Python bu tarih ayrıştırmak mümkün olmak istiyorum. İlk başta, datettime strptime() fonksiyonu kullanmaya çalıştım.

>>> datetime.datetime.strptime('Tue Jun 22 12:10:20 2010 EST', '%a %b %d %H:%M:%S %Y %Z')

Ancak nedense, geri geliyor datetime nesne tzinfo herhangi bir ilişkili var gibi görünmüyor.

Görünüşe göre datetime.strptime sessizce atar tzinfo, ancak, belgelere baktım, bir şey bulamadım için bu yönde here belgelenmiş this page okudum.

Ben olması almak tarih çözümlü kullanarak bir üçüncü taraf Python Kütüphanesi dateutil ancak ben hala merak ediyorlar nasıl olduğumu kullanarak yerleşik strptime() yanlış? strptime() güzel dilimleri ile oynamak için herhangi bir yolu var mı?

CEVAP
15 Aralık 2011, PERŞEMBE


python-dateutil kullanmanızı öneririz. Kendi ayrıştırıcı verdiğim her tarih biçimi çözümleyebilir şimdiye kadar olmuştur.

>>> from dateutil import parser
>>> parser.parse("Tue Jun 22 07:46:22 EST 2010")
datetime.datetime(2010, 6, 22, 7, 46, 22, tzinfo=tzlocal())
>>> parser.parse("Fri, 11 Nov 2011 03:18:09 -0400")
datetime.datetime(2011, 11, 11, 3, 18, 9, tzinfo=tzoffset(None, -14400))
>>> parser.parse("Sun")
datetime.datetime(2011, 12, 18, 0, 0)
>>> parser.parse("10-11-08")
datetime.datetime(2008, 10, 11, 0, 0)

ve benzeri. strptime() biçim saçmalık ile ilgili... sadece bir tarih atmak ve Doğru olanı Yapar.

Güncelleme: Oops. dateutil, üzgünüm kullandığınız bahsettiğiniz özgün soru kaçırdım. Ama bu cevap tarih soruları ayrıştırma var ve bu modül programı görünce hala bu soruya rastlamak diğer insanlar için yararlı olduğunu umuyoruz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • androidandme

    androidandme

    10 Mart 2009
  • Liam Underwood

    Liam Underwo

    19 Mayıs 2009
  • PhoneArena

    PhoneArena

    7 NİSAN 2006