使用strptime將帶有偏移量的時間戳轉換為日期時間obj我試圖使用strptime方法將格式為“2012-07-24T23:14:29-07:00”的時間戳轉換為python中的datetime對象。問題是時間偏移在末尾(-07:00)。如果沒有偏移量,我可以成功地完成time_str = "2012-07-24T23:14:29"time_obj=datetime.datetime.strptime(time_str,'%Y-%m-%dT%H:%M:%S')但是我試過了time_str = "2012-07-24T23:14:29-07:00"time_obj=datetime.datetime.strptime(time_str,'%Y-%m-%dT%H:%M:%S-%z').但是它給出了一個值錯誤,它說“z”是一個錯誤的指令。有什么好主意嗎?
3 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
from datetime import datetime time_str = "2012-07-24T23:14:29-07:00"dt_aware = datetime.fromisoformat(time_str)print(dt_aware.isoformat('T'))# -> 2012-07-24T23:14:29-07:00
from datetime import datetime time_str = "2012-07-24T23:14:29-0700"dt_aware = datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')print(dt_aware.isoformat('T')) # -> 2012-07-24T23:14:29-07:00
:
-0700
from datetime import datetime time_str = "2012-07-24T23:14:29-0700"# split the utc offset partnaive_time_str, offset_str = time_str[:-5], time_str[-5:] # parse the naive date/time partnaive_dt = datetime.strptime(naive_time_str, '%Y-%m-%dT%H:%M:%S') # parse the utc offsetoffset = int(offset_str[-4:-2])*60 + int(offset_str[-2:])if offset_str[0] == "-": offset = -offset dt = naive_dt.replace(tzinfo=FixedOffset(offset))print(dt.isoformat('T'))
添加回答
舉報
0/150
提交
取消