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
İ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")
Nasıl bir yerel datetime sadece python...
Nasıl dize Python küçük harfe dönüştür...
Nasıl python tamsayılar dizeleri dönüş...
Nasıl Python ile bir çift için bir diz...
Nasıl Python ile url-güvenli en kısa d...