【发布时间】:2015-04-16 19:17:19
【问题描述】:
我有一个从文件中读取的字符串列表 - 每个字符串都有一个在存储数据时记录的时间偏移量。
date1= "Mon May 05 20:00:00 EDT 2014"
date2="Mon Nov 18 19:00:00 EST 2013"
date3="Mon Nov 07 19:00:00 PST 2013"
我需要找出每对字符串之间的天数差异。
from datetime import datetime
from dateutil import tz
def days_hours_minutes(td):
return td.days, td.seconds//3600, (td.seconds//60)%60
date1='Fri Dec 05 19:00:00 2014' # it does not work with EDT, EST etc.
date2='Fri Dec 03 19:00:00 2014'
fmt = "%a %b %d %H:%M:%S %Y"
str1 = datetime.strptime(date1, fmt)
str2 = datetime.strptime(date2, fmt)
td=(str1-str2)
x=days_hours_minutes(td)
print x
#gives (2, 0, 0)
基本上,将每个字符串转换为其“my_time_obj”,然后以天为单位取差。
但是,我的实际字符串日期有“EDT”、“EST”、“IST”等 - 在使用 %Z 表示法时,我得到了 ValueError: time data 'Fri Dec 05 19:00:00 EST 2014' does not match format '%a %b %d %H:%M:%S %Z %Y'
从日期时间文档中,我看到我可以使用 %Z 将其转换为时区表示法 - 我错过了什么? https://docs.python.org/2/library/datetime.html
【问题讨论】:
标签: python-2.7 date datetime pytz