SORU
25 Aralık 2010, CUMARTESİ


Datetime değeri almak için Nasıl.Python: farkında" dilimimi;? () bugün "

datetime.today() değeri bir tarih değeri önce bir şey oldu, hesaplamak, çıkarmak için çalışıyorum. Ama şikayetçi:

TypeError: can't subtract offset-naive and offset-aware datetimes

4* *değeri "farkında", ama başka bir tarih olsa değer. dilimi gibi görünmüyor Ne zaman diliminin farkında olan datetime.today() değeri alabilirim? Şimdi bana PST olur yerel saat zaman veriyor, yani UTC-8hrs. En kötü durumda, el ile datetime nesne datetime.today() tarafından döndürülen zaman dilimini içine bir değer girin ve UTC-8 için ayarlayabilirsiniz bir yolu var mı? Tabii ki, ideal bir çözüm, otomatik olarak zaman dilimini bilmek için olacaktır.

Teşekkürler!

CEVAP
25 Aralık 2010, CUMARTESİ


Standart kütüphanede, kendi dilimimi sınıf yaratmadan farkında dilimleri oluşturmak için çapraz platform yolu yok.

Windows, ama bu pywin32 parçası win32timezone.utcnow() var. Bu etmek yerine çoğu zaman dilimlerinin en güncel bir veritabanına sahip olan pytz library,.

Yerel dilimleri ile çalışmak çok zor (pytz belgeleri okuyun!) daha doğrusu boyunca uygulama UTC kullanmak isteyebilirsiniz. Geçerli tarih/saat gibi alabilirsiniz:

import pytz
from datetime import datetime
datetime.utcnow().replace(tzinfo = pytz.utc)

datetime.today() datetime.now() dönüş unutmayınyerelzaman, onlara .replace(tzinfo = pytz.utc) uygulamak doğru olmayacaktır UTC zaman değil.

Bunu yapmak için başka bir yoludur:

datetime.now(pytz.utc)

biraz daha kısa ve aynı işi yapar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Sam Kear

    Sam Kear

    14 Temmuz 2007