我正在读取日期时间格式的字符串。但是,毫秒不是有 6 位数字,而是只有 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)
最佳答案
你应该使用这种格式
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'
关于python - 以 3 位毫秒的日期时间对象的形式读入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53404692/