所以我有这种 f 格式:
'%Y-%m-%d %H:%M:%S.%f'
date_time = datetime.now()
Run Code Online (Sandbox Code Playgroud)
输出
'2019-04-15 07:52:14.211697'
Run Code Online (Sandbox Code Playgroud)
我想将其更改为这种格式:'%Y-%m-%d %H:%M:%S,%f'
这就是我尝试过的:
time = datetime.strptime(str(date_time), '%Y-%m-%d %H:%M:%S,%f')
Run Code Online (Sandbox Code Playgroud)
这是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'
Run Code Online (Sandbox Code Playgroud)
我想将其转换为Datetime:
time = datetime.strptime(maches[0], '%Y-%m-%d %H:%M:%S,%f')
Run Code Online (Sandbox Code Playgroud)
这又返回了另一个format:
2019-03-13 17:35:35.855000
Run Code Online (Sandbox Code Playgroud)
为什么 ?
您想使用 strftime:
str_time = datetime.strftime(date_time, '%Y-%m-%d %H:%M:%S,%f')
Run Code Online (Sandbox Code Playgroud)
strftime() 用于将日期时间对象转换为字符串
strptime() 用于将日期字符串转换为日期时间对象
另外,文档中还有一个很好的资源描述了差异:strftime() 和 strptime() 行为
对问题的答复编辑
为了响应您的编辑,strptime 接受一个字符串日期并将其转换为日期时间对象。您传递给它的格式只是告诉它如何将字符串解析为日期时间。它没有规定它的打印格式。在这种情况下,您正在对日期时间对象调用 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'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18817 次 |
| 最近记录: |