在 python 中将字符串日期时间格式化为所需格式
Format string date time into desired format in python
我有一个 string 类型的变量,时间戳格式 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')
试试这个:
pub_date=datetime.datetime.strptime(i.published, '%a, %d %b %Y %H:%M:%S %z').strftime('%Y-%m-%d %H:%M:%S')
最后一个格式化代码不需要句点,它应该是 %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
我有一个 string 类型的变量,时间戳格式 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')
试试这个:
pub_date=datetime.datetime.strptime(i.published, '%a, %d %b %Y %H:%M:%S %z').strftime('%Y-%m-%d %H:%M:%S')
最后一个格式化代码不需要句点,它应该是 %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