Python:将日期时间格式转换为其他格式

时间:2019-04-15 04:52:40

标签: python datetime

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

为什么?

3 个答案:

答案 0 :(得分:2)

您要使用strftime:

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

快速比较strftimestrptime

  

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)