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

  • ASUS North America

    ASUS North A

    12 AĞUSTOS 2008
  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • Max Lee

    Max Lee

    18 AĞUSTOS 2006