繁体   English   中英

日期时间模块中的 %b vs %B (python 3)

[英]%b vs %B in datetime module (python 3)

fmt_1 = '%a %d %B %Y %H:%M:%S %z'
fmt_2 = '%a %d %b %Y %H:%M:%S %z'

t1="Sat 14 Sep 2126 00:36:44 +1400"
code1= dateime.datime.strptime(t1,fmt_1)  #run time error

code2= dateime.datime.strptime(t1,fmt_2)   #right code

为此我得到了 fmt_1 的运行时错误,并通过使用 fmt_2 进行了修复

%b 和 %B 有什么区别?

来自有关格式代码的文档

  • %b表示月份,作为语言环境的缩写名称。 比如Jan, Feb, …, Dec

  • %B表示月份作为语言环境的全名。 比如January, February, …, December


Sat 14 Sep 2126 00:36:44 +1400月份Sep采用abbreviated格式,因此%b适合,而%B不适合

%b用于区域设置的缩写月份名称, %B用于完整月份名称。 t1="Sat 14 Sep 2126 00:36:44 +1400"是这个字符串Sep是短名称。 这就是为什么您在 fmt_1 中因格式不匹配而出现错误的原因。 您可以关注此文档https://docs.python.org/2.6/library/datetime.html

你可以使用这个:

datetime.datetime.strptime("Sat 14 Sep 2126 00:36:44 +1400", '%a %d %b %Y %H:%M:%S %z').strftime("%Y-%m-%d %H:%M:%S")

并得到以下结果:

'2126-09-14 00:36:44'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM