2016-04-14 14 views
3

Python'da, 25 Aralık 2016 tarihli bir randevum olduğunu varsayalım. Bu tarihte bir saat dilimi farkında tarih saatini nasıl oluşturabilirim?10 Python'da, bir tarih ve saatten bir saat dilimi farkında tarih saatini nasıl oluşturabilirim?

Django'nun saat dilimi kullanımı ile uyumluysa, bonus puanları. Saf Python

+0

Olası yinelenen [Django: bir datetime oluşturulduğu içinde diliminin farkında nesne nasıl yapılır] (http://stackoverflow.com/questions/22108634/django-how- -de-make-a-datetime-nesne-farkında-of-the-zaman dilimi-in-it-was-oldu) – Sayse

+0

Bu özellik Bir tarih öncesinden, bir önceki günlerden değil, bir tarih öncesinden bahsetmek. – seddonym

+0

Tarihi "0 (0)" ile birleştirmek için naif datetime –

cevap

8

, üçüncü taraf paketi pytz kullanabilir ve (bu durumda 'Avrupa/Londra' de) Saat dilimini belirtin:

from datetime import datetime, date, time 
import pytz 

date = date(2016, 12, 25) 
time = time(12, 0, 0, tzinfo=pytz.timezone('Europe/London')) 
aware_datetime = datetime.combine(date, time) 

Eğer Django yapıyor ediyorsanız kullanabilirsiniz geçerli saat dilimi:

from datetime import datetime, date, time 
from django.utils import timezone 

date = date(2016, 12, 25) 
time = time(12, 0, 0, tzinfo=timezone.get_current_timezone()) 
aware_datetime = datetime.combine(date, time) 
+1

[use '.localize()' yöntemini, sabit olmayan bir utc offset ile saat dilimi için kullanabilirsiniz] (http://stackoverflow.com/a/36462784/4279). Veya 'django.utils.timezone.make_aware()'. – jfs

+0

Tarih/saat nesnesi önceden oluşturulduysa şu komutu kullanın: 'date_object.replace (tzinfo = timezone.get_current_timezone())' – d345k0

İlgili konular