首页 > 解决方案 > 在python中将字符串日期时间格式化为所需的格式

问题描述

我有一个变量,它是时间戳格式的字符串类型Fri, 19 Mar 2021 06:15:55 +0000

使用https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior格式化但它抛出ValueError: time data 'Fri, 19 Mar 2021 06:15:55 +0000' does not match format '%a, %d %b %Y %H:%M:%S.%f'

我更改格式的代码

pub_date=datetime.datetime.strptime(i.published, '%a, %d %b %Y %H:%M:%S.%f').strftime('%Y-%m-%d %H:%M:%S')

标签: python-3.xpython-datetime

解决方案


尝试这个:

pub_date=datetime.datetime.strptime(i.published, '%a, %d %b %Y %H:%M:%S %z').strftime('%Y-%m-%d %H:%M:%S')

最后一个格式化代码不应该需要一个句点,它应该是 a%z而不是%f

代码之间有什么区别?

%f 当微秒表示为十进制数时使用,在左侧补零。例如:000000, 000001, …, 999999

%z 当 UTC 偏移量以±HHMM[SS[.ffffff]] 形式表示时使用(如果对象是幼稚的,则为空字符串)。例如:+0000, -0400, +1030, +063415, -030712.345216

参考:

datetime一般模块:https ://docs.python.org/3/library/datetime.html

有关格式规范的详细信息:https ://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes


推荐阅读