如何在python中转换此字符串

2024-03-29 11:19:57 发布

您现在位置:Python中文网/ 问答频道 /正文

2018-02-06T14:45:03.0040554Z

无法将此字符串转换为日期时间。你知道吗

datetime.strptime('2018-02-06T14:45:03.0040554Z', '%Y-%m-%dT%H:%M:%fZ')

我正在尝试这个,但它不起作用。你知道吗

datetime.strptime('2018-02-06T14:45:03Z', '%Y-%m-%dT%H:%M:%fZ')

本作品为以上时间格式。你知道吗

但是我从第三方api得到这个时间字符串,所以不能改变它的格式。你知道吗


Tags: 字符串apidatetime格式时间作品strptimefz
3条回答

你的输入格式非常奇怪,因为它在第二个分数中有7个数字

看看老问题:How do I convert a date string containing 7 digits in milliseconds into a date in Python

您可以拆分/重新连接字符串并使用'%Y-%m-%dT%H:%M:%S.%fZ'或使用dateutil.parser.parse

如果您可以使用dateutil模块,您可以这样做。你知道吗

from dateutil import parser
print parser.parse('2018-02-06T14:45:03.0040554Z')

输出:

2018-02-06 14:45:03.004055+00:00

使用Datetime。看来你错过了秒参数,微秒必须是6,你有7。你知道吗

import datetime
print datetime.datetime.strptime('2018-02-06T14:45:03.004055Z', '%Y-%m-%dT%H:%M:%S.%fZ')
print datetime.datetime.strptime('2018-02-06T14:45:03Z', '%Y-%m-%dT%H:%M:%SZ') 

输出

2018-02-06 14:45:03.004055
2018-02-06 14:45:03

一种方法是使用pandas

import pandas as pd

pd.to_datetime('2018-02-06T14:45:03.0040554Z').to_pydatetime()

'2018-02-06 14:45:03.004055'

相关问题 更多 >