arb*_*115 3 python datetime python-3.x datetime-parsing
我有以这种格式返回日期的网址
url_date = "2015-01-12T08:43:02Z"
Run Code Online (Sandbox Code Playgroud)
我不知道为什么有字符串,它会更容易得到它,因为"2015-01-1208:43:02"它可以更简单地解析使用
datetime.datetime.strptime(url_date , '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我试过了
%Y-%m-%d
%Y-%m-%d-%H-%M-%S
%Y-%m-%d-%H-%M-%S-%Z
Run Code Online (Sandbox Code Playgroud)
但我一直得到像"时间数据2015-01-12T08:43:02Z不匹配......"的错误
在最后一次尝试中你接近"Z" - 你需要在格式字符串中指定T,Z和冒号文字值.
>>> import datetime
>>> url_date = "2015-01-12T08:43:02Z"
>>> datetime.datetime.strptime(url_date , '%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2015, 1, 12, 8, 43, 2)
Run Code Online (Sandbox Code Playgroud)
您正在寻找的格式是 - '%Y-%m-%dT%H:%M:%SZ'。
例子 -
>>> url_date = "2015-01-12T08:43:02Z"
>>> import datetime
>>> datetime.datetime.strptime(url_date , '%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2015, 1, 12, 8, 43, 2)
Run Code Online (Sandbox Code Playgroud)
对于评论中的新要求 -
如果我想用 2015-01-12:08:43:02 中的字符串返回时间,哪些方法应该在 datetime().datetime() 之后
您需要.strftime()在datetime.datetime对象上使用格式 - '%Y-%m-%d:%H:%M:%S'。例子 -
>>> url_date = "2015-01-12T08:43:02Z"
>>> dt = datetime.datetime.strptime(url_date , '%Y-%m-%dT%H:%M:%SZ')
>>> dt.strftime('%Y-%m-%d:%H:%M:%S')
'2015-01-12:08:43:02'
Run Code Online (Sandbox Code Playgroud)
如果你想要时间组件,你可以使用.time()它。例子 -
>>> dt = datetime.datetime.strptime(url_date , '%Y-%m-%dT%H:%M:%SZ')
>>> dt.time()
datetime.time(8, 43, 2)
Run Code Online (Sandbox Code Playgroud)