SORU
17 EYLÜL 2008, ÇARŞAMBA


Nasıl yerel saat UTC dönüştürmek için Python?

Nasıl bir datetime dönüştürebilirimyerel saat dizebirUTC zaman dize?

Bunu daha önce de yaptım eminim, ama bulamıyorum ve bu YÜZDEN umarım bana (ve diğerleri) gelecekte bu konuda yardımcı olacaktır.

Açıklama: Eğer benim yerel zaman dilimi ( 10) 2008-09-17 14:02:00 Ben, örneğin, UTC saat: eşdeğer içeren bir dize oluşturmak istiyorum 2008-09-17 04:02:00.

Ayrıca, DST ve diğer konularda olduğu gibi http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/, genel olarak bu mümkün değil unutmayın yerel zaman benzersiz dönüşüm UTC zamanını yok.

CEVAP
17 EYLÜL 2008, ÇARŞAMBA


İlk olarak, saf bir datetime nesnesi haline dizesini ayrıştırmak. Bu ekli ile dilimi bilgileri datetime.datetime bir örneğidir. Tarih dize ayrıştırma hakkında bilgi için datetime.strptime için belgelerine bakın.

Zaman dilimi UTC tam bir listesi ile birlikte gelir pytz Bu modül, kullanın. Yerel zaman dilimini ne olduğunu, bu zaman dilimi bir nesne oluşturmak ve işlemek ve naif datetime ekleyin.

Son olarak, datetime.astimezone() yöntem datetime UTC dönüştürmek için kullanın.

Kaynak kodu, yerel saat dilimi kullanarak "America/Los_Angeles", dizesi "2001-2-3 10:11:12":

import pytz, datetime
local = pytz.timezone ("America/Los_Angeles")
naive = datetime.datetime.strptime ("2001-2-3 10:11:12", "%Y-%m-%d %H:%M:%S")
local_dt = local.localize(naive, is_dst=None)
utc_dt = local_dt.astimezone (pytz.utc)

Oradan, strftime() yöntemi gerektiğinde UTC datetime biçimi kullanabilirsiniz:

utc_dt.strftime ("%Y-%m-%d %H:%M:%S")

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008