将字符串读入为包含3位毫秒的日期时间对象

5

我正在读取一个日期时间格式的字符串。但是,它只有3个数字表示毫秒,并以字母Z结尾。我该如何读取此字符串并将其转换为日期时间对象,然后再加1天,并将其写成上述格式的字符串,即3个数字表示毫秒和字母Z结尾。我尝试了以下代码,但不成功:

old_date= "2018-06-06T23:59:59.999Z"
new_date = datetime.datetime.strptime(old_date, '%Y-%m-%d %H:%M:%S.%f%Z') + datetime.timedelta(days=1)
print(new_date)
1个回答

4
你应该使用这种格式。
datetime.datetime.strptime(old_date, '%Y-%m-%dT%H:%M:%S.%fZ')
Out[180]: datetime.datetime(2018, 6, 6, 23, 59, 59, 999000)

更新
dt1=datetime.datetime.strptime(old_date, '%Y-%m-%dT%H:%M:%S.%fZ')+datetime.timedelta(days=1)
dt1.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]+'Z'
Out[196]: '2018-06-07 23:59:59.999Z'

谢谢。把这个写成一个字符串,毫秒部分有3位数字,并在末尾加上Z,可以吗? - duckman
你是冠军! - duckman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接