需要在Python中将UTC(aws ec2)转换为PST

Nis*_*ish 14 python

我需要将UTC时间(在ec2实例上)转换为PST.我想这样做.

from datetime import datetime
from pytz import timezone
import pytz

date_format='%m/%d/%Y %H:%M:%S %Z'
date = datetime.now()
print 'Current date & time is:', date.strftime(date_format)

my_timezone=timezone('US/Pacific')

date = my_timezone.localize(date)
date = date.astimezone(my_timezone)

print 'Local date & time is  :', date.strftime(date_format)
Run Code Online (Sandbox Code Playgroud)

但输出是:

Current date & time is: 01/10/2012 20:01:14
Local date & time is  : 01/10/2012 20:01:14 PST
Run Code Online (Sandbox Code Playgroud)

我没有得到正确的PST时间的任何原因?

sle*_*erd 22

from datetime import datetime
from pytz import timezone
import pytz

date_format='%m/%d/%Y %H:%M:%S %Z'
date = datetime.now(tz=pytz.utc)
print 'Current date & time is:', date.strftime(date_format)

date = date.astimezone(timezone('US/Pacific'))

print 'Local date & time is  :', date.strftime(date_format)
Run Code Online (Sandbox Code Playgroud)

似乎对我有用:) - 时区令人困惑,慢慢制定一个我真正想做的计划,大部分时间帮助我

  • 谢谢伙计,时区是背痛,夏令时更令人头疼! (2认同)

Way*_* Ye 7

在一行中执行此操作:

>>> import pytz
>>> pytz.utc.localize(datetime.utcnow()).astimezone(pytz.timezone('US/Pacific'))
datetime.datetime(2016, 5, 16, 10, 58, 18, 413399, tzinfo=<DstTzInfo 'US/Pacific' PDT-1 day, 17:00:00 DST>)
Run Code Online (Sandbox Code Playgroud)


rea*_*l4x 5

通过打电话给localize您,告诉您您的时间在什么 TZ。因此,在您的示例中,您说您的日期在 PST,然后您调用astimezonePST 并获得预期的相同时间。您可能需要以下内容:

utc_dt = pytz.utc.localize(datetime.utcnow())
pst_tz = timezone('US/Pacific')
pst_dt = pst_tz.normalize(utc_dt.astimezone(pst_tz))
pst_dt.strftime(fmt)
Run Code Online (Sandbox Code Playgroud)

抱歉,无法检查此代码是否执行 - 工作站上没有此库。