【问题标题】:How to convert string to datetime? [duplicate]如何将字符串转换为日期时间? [复制]
【发布时间】:2018-03-24 18:18:28
【问题描述】:

我有以下字符串:

'2017-08-15T13:34:35Z'

如何将此字符串转换为我可以调用.isoformat() 的对象?

someobject = convert('2017-08-15T13:34:35Z')
someobject.isoformat()

convert()如何实现?

【问题讨论】:

标签: python python-3.x datetime date-parsing


【解决方案1】:

Here 将字符串解析为日期时间,则可以:

def convert(s):
    return datetime.strptime(s, '%Y-%m-%dT%H:%M:%SZ')

someobject = convert('2017-08-15T13:34:35Z')
print(someobject.isoformat())

【讨论】:

  • 忽略时区是错误的。 'Z' 是 UTC +0 的标准时区。试试这个:import pytzimport datetimeprint(datetime.datetime.strptime('2020-02-03T14:33:22Z', '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.UTC))
【解决方案2】:

你可以使用dateutilparser

>>> import dateutil.parser
>>> date = dateutil.parser.parse('2017-08-15T13:34:35Z', ignoretz=True)
>>> date
datetime.datetime(2017, 8, 15, 13, 34, 35)
>>> date.isoformat()
'2017-08-15T13:34:35'

【讨论】:

  • 忽略时区是错误的。 'Z' 是 UTC +0 的标准时区。试试这个:import pytzimport datetimeprint(datetime.datetime.strptime('2020-02-03T14:33:22Z', '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.UTC))
猜你喜欢
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 2019-12-15
  • 2021-08-16
  • 1970-01-01
相关资源
最近更新 更多