how to set timezone to eastern for DateTime module in python?
本问题已经有最佳答案,请猛点这里访问。
我正在利用datetime模块生成当前日期。但是,当我在晚上7点之后运行这个时,当前日期将成为明天的日期。
我不知道如何设置以下模块的时区
1 2 | from datetime import * print date.today() |
我已经阅读了文档,但还没有找到如何设置它。
你的约会是一个"天真"的日期时间,它没有时区(
下面是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from datetime import datetime from pytz import timezone # define date format fmt = '%Y-%m-%d %H:%M:%S %Z%z' # define eastern timezone eastern = timezone('US/Eastern') # naive datetime naive_dt = datetime.now() # localized datetime loc_dt = datetime.now(eastern) print(naive_dt.strftime(fmt)) # 2015-12-31 19:21:00 print(loc_dt.strftime(fmt)) # 2015-12-31 19:21:00 EST-0500 |
阅读Pytz文档了解更多信息
虽然
1 2 3 4 5 6 7 8 9 | class UTC(tzinfo): def utcoffset(self, dt): return timedelta(0) def tzname(self, dt): return"UTC" def dst(self, dt): return timedelta(0) |
例如,东部标准时间(UTC-5:00,无DST):
1 2 3 4 5 6 7 8 9 | class EST(tzinfo): def utcoffset(self, dt): return timedelta(hours = -5) def tzname(self, dt): return"EST" def dst(self, dt): return timedelta(0) |
在为你的时区做了一个课程之后,你就可以得到你想要的
1 | datetime.now(UTC()).date() |
(将
还有一个图书馆,Pytz,可以让你更容易找到。