In python, how do I create a timezone aware datetime from a date and time?

后端 未结 2 519
悲&欢浪女
悲&欢浪女 2021-02-07 14:02

In Python, let\'s say I have a date of 25 December 2016. How can I create a timezone-aware datetime of noon on that date?

Bonus points if it\'s compatible with Django\'

2条回答
  •  失恋的感觉
    2021-02-07 14:47

    Erik's answer to this question explains why you should use datetime.combine() followed by timezone.localize(). Setting the timezone directly on the datetime.time instance will not take the date into account, which could leave you with an incorrect result (due to daylight savings or even historic transitions). datetime.combine() just isn't that smart!

    >>> import pytz
    >>> import datetime
    >>> d = datetime.date(2016, 12, 25)
    >>> t = datetime.time(12)
    >>> tz = pytz.timezone('US/Pacific')
    >>> tz.localize(datetime.datetime.combine(d,t))
    datetime.datetime(2016, 12, 25, 12, 0, tzinfo=)
    

提交回复
热议问题