我看到很多关于将日期字符串转换为 datetime
Python 中的对象,但我想换一种方式。
我有
datetime.datetime(2012, 2, 23, 0, 0)
我想将其转换为 '2/23/2012'
之类的字符串。
原文由 wilbev 发布,翻译遵循 CC BY-SA 4.0 许可协议
我看到很多关于将日期字符串转换为 datetime
Python 中的对象,但我想换一种方式。
我有
datetime.datetime(2012, 2, 23, 0, 0)
我想将其转换为 '2/23/2012'
之类的字符串。
原文由 wilbev 发布,翻译遵循 CC BY-SA 4.0 许可协议
date
和 datetime
对象(和 time
以及)支持一个 迷你语言来指定输出,它有两种访问方式
dt.strftime('format here')
'{:format here}'.format(dt)
f'{dt:format here}'
所以你的例子看起来像:
dt.strftime('The date is %b %d, %Y')
'The date is {:%b %d, %Y}'.format(dt)
f'The date is {dt:%b %d, %Y}'
在所有三种情况下,输出都是:
日期是2012年2月23日
为了完整起见:你也可以直接访问对象的属性,但你只能得到数字:
'The date is %s/%s/%s' % (dt.month, dt.day, dt.year)
# The date is 02/23/2012
学习迷你语言所花费的时间是值得的。
作为参考,以下是迷你语言中使用的代码:
%a
工作日作为语言环境的缩写名称。%A
工作日作为语言环境的全名。%w
十进制数形式的工作日,其中 0 是星期日,6 是星期六。%d
以零填充的十进制数表示的月份中的第几天。%b
月份作为语言环境的缩写名称。%B
月份作为语言环境的全名。%m
月份作为零填充的十进制数。 01, …, 12%y
没有世纪的年份作为零填充的十进制数。 00, …, 99%Y
以十进制数表示的年份。 1970, 1988, 2001, 2013%H
小时(24 小时制)作为零填充的十进制数。 00, …, 23%I
小时(12 小时制)作为零填充的十进制数。 01, …, 12%p
Locale 相当于 AM 或 PM。%M
分钟作为零填充的十进制数。 00, …, 59%S
第二个作为零填充的十进制数。 00, …, 59%f
作为十进制数,在左侧补零。 000000, …, 999999%z
格式为 +HHMM 或 -HHMM 的 UTC 偏移量(如果天真则为空)、+0000、-0400、+1030%Z
时区名称(如果天真则为空)、UTC、EST、CST%j
以零填充的十进制数字表示的一年中的第几天。 001, …, 366%U
一年中的周数(星期日是第一个)作为零填充的十进制数。%W
一年中的周数(星期一是第一个)作为十进制数。%c
Locale 的适当日期和时间表示。%x
Locale 的适当日期表示。%X
Locale 的适当时间表示。%%
字面的“%”字符。原文由 Ethan Furman 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
您可以使用 strftime 来帮助您格式化日期。
例如,
将产生:
有关格式化的更多信息,请参见 此处