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

  • Booredatwork.com

    Booredatwork

    5 Ocak 2009
  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006