Datetime modülünün utcnow () işlevi geçerli UTC saatini elde etmek için kullanılabilir.
>>> import datetime
>>> utc_datetime = datetime.datetime.utcnow()
>>> utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2010-02-01 06:59:19'
Tom'un yukarıda bahsettiği bağlantıdan: http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/ diyor ki:
UTC, gün ışığından yararlanma saati olmayan bir zaman dilimi ve geçmişte yapılandırma değişiklikleri olmayan bir saat dilimi.
Saati her zaman UTC olarak ölçün ve saklayın .
Zamanın nerede kaydedildiğini kaydetmeniz gerekiyorsa, ayrı olarak saklayın.
Etmeyin yerel saat + saat dilimi bilgilerini saklamak!
NOT - Verilerinizden herhangi biri DST kullanan bir bölgedeyse pytz
, John Millikin'in yanıtını kullanın ve bir göz atın.
Belirli bir dizeden UTC saatini almak ve dünyada DST kullanmayan bir bölgede olmak için yeterince şanslıysanız veya DST uygulanmadığında yalnızca UTC'den dengelenen verileriniz varsa:
-> ofset değerinin temeli olarak yerel saati kullanmak:
>>> # Obtain the UTC Offset for the current system:
>>> UTC_OFFSET_TIMEDELTA = datetime.datetime.utcnow() - datetime.datetime.now()
>>> local_datetime = datetime.datetime.strptime("2008-09-17 14:04:00", "%Y-%m-%d %H:%M:%S")
>>> result_utc_datetime = local_datetime + UTC_OFFSET_TIMEDELTA
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'
-> Veya bilinen bir ofsetten datetime.timedelta () kullanarak:
>>> UTC_OFFSET = 10
>>> result_utc_datetime = local_datetime - datetime.timedelta(hours=UTC_OFFSET)
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'
GÜNCELLEME:
Python 3.2 datetime.timezone
mevcut olduğundan. Aşağıdaki komutla bir saat dilimine duyarlı datetime nesnesi oluşturabilirsiniz:
import datetime
timezone_aware_dt = datetime.datetime.now(datetime.timezone.utc)
Saat dilimi dönüşümlerini yapmaya hazırsanız şunu okuyun:
https://medium.com/@eleroy/10-things-you-need-to-know-about-date-and-time-in-python-with-datetime-pytz-dateutil-timedelta-309bfbafb3f7