仅在Python中将datetime对象转换为日期字符串

2024-04-26 23:43:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中将日期字符串转换为datetime对象方面,我看到了很多东西,但我想走另一条路。
我有

datetime.datetime(2012, 2, 23, 0, 0)

我想把它转换成类似'2/23/2012'的字符串。


Tags: 对象字符串datetime中将
3条回答

另一种选择:

import datetime
now=datetime.datetime.now()
now.isoformat()
# ouptut --> '2016-03-09T08:18:20.860968'

您可以使用strftime帮助设置日期格式。

例如

import datetime
t = datetime.datetime(2012, 2, 23, 0, 0)
t.strftime('%m/%d/%Y')

将产生:

'02/23/2012'

有关格式的详细信息,请参见here

datedatetime对象(以及time)支持mini-language to specify output,有两种访问方法:

  • 直接方法调用:dt.strftime('format here');和
  • 新格式方法:'{:format here}'.format(dt)

所以你的例子可能是:

dt.strftime('%m/%d/%Y')

或者

'{:%m/%d/%Y}'.format(dt)

为了完整性起见:您也可以直接访问对象的属性,但是您只能得到数字:

'%s/%s/%s' % (dt.month, dt.day, dt.year)

学习迷你语言所花的时间是值得的。


以下是mini语言中使用的代码,供参考:

  • %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语言环境相当于AM或PM。
  • %M分钟作为零填充的十进制数。00,…,59
  • %S秒作为零填充的十进制数。00,…,59
  • %f微秒为十进制数,左边补零。000000,…,9999999
  • %z格式为+HHMM或-HHMM的UTC偏移量(如果是原始值,则为空)、+0000、-0400、+1030
  • %Z时区名称(如果天真,则为空)、UTC、EST、CST
  • %j一年中以零填充的十进制数字表示的日期。001,…,366
  • %U一年中的周数(星期日是第一个),用零填充的十进制数表示。
  • %W一年中的周数(星期一是第一个)作为十进制数。
  • %c语言环境的适当日期和时间表示。
  • %x语言环境的适当日期表示。
  • %X语言环境的适当时间表示。
  • %%一个文本“%”字符。

相关问题 更多 >