Python:将日期时间格式转换为另一种格式

fal*_*kky 2 python datetime

所以我有这种 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)

为什么 ?

cul*_*zie 6

您想使用 strftime:

str_time = datetime.strftime(date_time, '%Y-%m-%d %H:%M:%S,%f')
Run Code Online (Sandbox Code Playgroud)

strftimestrptime的快速比较:

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)