所以我有这种f格式:
'%Y-%m-%d %H:%M:%S.%f'
date_time = datetime.now()
输出
'2019-04-15 07:52:14.211697'
我要更改为以下格式:'%Y-%m-%d %H:%M:%S,%f'
这是我尝试过的:
time = datetime.strptime(str(date_time), '%Y-%m-%d %H:%M:%S,%f')
这是error
:
ValueError:时间数据'2019-04-15 07:52:14.211697'不匹配 格式为'%Y-%m-%d%H:%M:%S,%f'
修改
所以我有这个string
:
maches = regex.findall(
'[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1]) (?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9],[0-9][0-9][0-9]',
line)
match[0] = '2019-03-13 17:35:35,855'
我想将其转换为Datetime
:
time = datetime.strptime(maches[0], '%Y-%m-%d %H:%M:%S,%f')
这又返回了另一个format
:
2019-03-13 17:35:35.855000
为什么?
答案 0 :(得分:2)
您要使用strftime:
str_time = datetime.strftime(date_time, '%Y-%m-%d %H:%M:%S,%f')
strftime()用于将日期时间对象转换为字符串
strptime()用于将日期字符串转换为日期时间对象
这也是说明差异的文档中的一个很好的资源:strftime() and strptime() Behavior
答复问题编辑
作为对您的编辑的响应,strptime接受字符串日期并将其转换为datetime对象。您传递给它的格式只是告诉它如何将字符串解析为datetime。它不指示它的打印格式。在这种情况下,您要在日期时间对象上调用print,因此输出由日期时间对象上的__str__
方法决定。
如果要以某种方式打印,请将其以您要输出的格式传递给strftime:
obj_time = datetime.strptime(maches[0], '%Y-%m-%d %H:%M:%S,%f')
print(datetime.strftime(obj_time , '%Y-%m-%d %H:%M:%S,%f'))
答案 1 :(得分:1)
使用strftime。
date_time = datetime.now()
print(date_time)
print(datetime.strftime(date_time, '%Y-%m-%d %H:%M:%S,%f'))
2019-04-15 10:26:08.637630
2019-04-15 10:26:08,637630
答案 2 :(得分:0)
使用此格式,您将获得以下格式:'%Y-%m-%d%H:%M:%S,%f'
print '{:%Y-%m-%d %H:%M:%S.%f}'.format(date_time)