去除日期字符串前导零

1 投票
2 回答
5777 浏览
提问于 2025-04-17 03:28

如果我有一个日期时间对象,我该如何把日期转换成下面这种格式的字符串:

1/27/1982  # it cannot be 01/27/1982 as there can't be leading 0's

我现在的做法是用 .replace 方法把所有的数字(比如 01、02、03 等等)都替换掉,但这样做感觉很低效,也很麻烦。有没有更好的方法来实现这个呢?

2 个回答

1

datetime对象有一个叫做strftime()的方法。这个方法可以让你更灵活地使用内置的格式字符串。

http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior

我使用了 lstrip('0') 来去掉前面的零。

>>> d = datetime.datetime(1982, 1, 27)

>>> d.strftime("%m/%d/%y")
'01/27/82'

>>> d.strftime("%m/%d/%Y")
'01/27/1982'

>>> d.strftime("%m/%d/%Y").lstrip('0')
'1/27/1982'
4

你可以自己来格式化,而不是使用 strftime 这个工具:

'{0}/{1}/{2}'.format(d.month, d.day, d.year) // Python 2.6+

'%d/%d/%d' % (d.month, d.day, d.year)

撰写回答