使用Tue Jan 10 2017 13:00:13 GMT 0800 (Taipei Standard Time)
将此字符串strptime
转换为python日期类型对象的正确格式是什么?
我尝试了question的答案,但这对我不起作用:
date1 = datetime.strptime(strDate1, '%b %d %Y %I:%M%p')
ValueError:时间数据'星期二2017年1月10日13:00:13 GMT 0800(台北 标准时间)'格式不匹配'%b%d%Y%I:%M%p'
答案 0 :(得分:2)
您可以设置不带时区的日期格式,稍后再添加
<ion-audio-track track="track" ng-repeat="x in array" ng-if="track.Size!=0">
<div class="card" ng-class="{'even':$index%2, 'odd':!($index%2)}">
<div class="row">
//item prints here
</div>
</div>
</ion-audio-track>
答案 1 :(得分:1)
名义上你可能希望能够使用%z(小写z)来转换TZ偏移,但是对此的支持是粗略的。所以你可以DIY它:
import datetime as dt
import re
PARSE_TIMESTAMP = re.compile('(.*) ([+-]?\d+) \(.*\)$')
def my_datetime_parse(timestamp):
''' return a naive datetime relative to UTC '''
# find the standard time stamp, and the TZ offset and remove extra end
matches = PARSE_TIMESTAMP.match(timestamp).groups()
# convert the timestamp element
timestamp = dt.datetime.strptime(matches[0], '%a %b %d %Y %H:%M:%S %Z')
# calculate the timezone offset
tz_offset = matches[1]
sign = '+'
if tz_offset[0] in '-+':
sign = tz_offset[0]
tz_offset = tz_offset[1:]
tz_offset += '0' * (4 - len(tz_offset))
minutes = int(tz_offset[0:2]) * 60 + int(tz_offset[2:])
if sign == '-':
minutes = -minutes
# add the timezone offset to our time
timestamp += dt.timedelta(minutes=minutes)
return timestamp
date_string = 'Tue Jan 10 2017 13:00:13 GMT +0800 (Taipei Standard Time)'
print(my_datetime_parse(date_string))
此代码生成:
2017-01-10 21:00:13
代码删除了(Taipei Standard Time)
,因为+0800
是多余的。