我需要在PST时区的python中以YYYY-MM-DD格式获取今天和明天的日期。 datetime()以UTC格式返回日期。我有一个内部JIRA系统,它使用PST日期设置,我想查询。代码将在受限制的环境中运行,我无法安装任何外部python模块,如pytz库。我尝试了很多方法,但都没有成功。
无论如何它可以在python中完成吗?
答案 0 :(得分:2)
对于datetime.date.today()的时区存在困惑,http://docs.python.org/2/library/datetime.html它给出了当地时间。现在它是格林威治的第20个,谷歌:
凌晨1:55 2014年3月20日星期四(格林威治标准时间) 时间格林威治,伦敦,英国
今天在科罗拉多州()给出第19名:
>>> import datetime
>>> str(datetime.date.today())
'2014-03-19'
>>> str(datetime.date.today() + datetime.timedelta(1))
'2014-03-20'
>>>
答案 1 :(得分:2)
好像你可以使用timedelta将UTC转换为PST,将今天的日期转换为明天的日期:
from datetime import datetime, timedelta
print datetime.utcnow() - timedelta(hours=8) //convert to PST
print datetime.utcnow() + timedelta(days=1) //get tomorrow
对于'YYYY-MM-DD'格式,python docs
中有date.isoformat()方法答案 2 :(得分:1)
我使用以下代码获取今天的日期和明天的PST日期。
from datetime import datetime, timedelta
from pytz import timezone
import pytz
/*Timezone aware object*/
utc_now = pytz.utc.localize(datetime.utcnow())
pst_now = utc_now.astimezone(pytz.timezone("America/Los_Angeles"))
file_dt=pst_now.strftime("%Y-%m-%d")
print(file_dt)
curr_time=datetime.utcnow().astimezone(pytz.timezone("America/Los_Angeles")
tom_time=utc_now+datetime.timedelta(days=1)
today=curr_time.strftime("%Y-%m-%d")
tomorrow=tom_time.strftime("%Y-%m-%d")
print("Today is "+today+" and Tomorrow is "+tomorrow)