要以RFC
2822格式解析日期,可以使用
from datetime import datetime, timedeltafrom email.utils import parsedate_tz, mktime_tztimestamp = mktime_tz(parsedate_tz("Thu, 16 Oct 2014 01:16:17 EDT"))# -> 1413436577utc_dt = datetime(1970, 1, 1) + timedelta(seconds=timestamp)# -> datetime.datetime(2014, 10, 16, 5, 16, 17)
注意:
parsedate_tz()假设EDT对应于
-0400UTC偏移量,但是在EDT是澳大利亚的情况下可能不正确
+1100(
pytz在这种情况下使用AEDT
),即时区缩写可能不明确。请参阅在Python中解析带有时区缩写名称的日期/时间字符串?
相关的Python错误:strptime中的%Z与EST和其他不匹配。
如果您的计算机(可能)使用POSIX时间戳,并且您确定输入日期在系统可接受的范围内(距离将来/过去不太远),并且不需要保留微秒的精度,则可以用途
datetime.utcfromtimestamp:
from datetime import datetimefrom email.utils import parsedate_tz, mktime_tztimestamp = mktime_tz(parsedate_tz("Thu, 16 Oct 2014 01:16:17 EDT"))# -> 1413436577utc_dt = datetime.utcfromtimestamp(timestamp)# -> datetime.datetime(2014, 10, 16, 5, 16, 17)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)