【发布时间】:2018-09-15 10:13:28
【问题描述】:
关于python3datetime 对象上删除前导零,我遇到了几个答案(1、2、3)。
投票最多的answers 状态之一:
在 Windows 上,您可以使用 #,例如
%Y/%#m/%#d
上面的代码对我不起作用。我也尝试过使用-而不是#的Linux解决方案,但没有成功。
代码:
loop_date = "1950-1-1"
date_obj = datetime.strptime(loop_date, '%Y-%m-%d') # or '%Y-%#m-%#d' which produces the errors below
date_obj += timedelta(days=1)
print(date_obj)
# This the prints `1954-01-02` but I need `1954-1-2`
追溯:
Traceback (most recent call last):
File "C:/collect_games.py", line 84, in <module>
date_obj = datetime.strptime(loop_date, '%Y-%-m-%d')
File "E:\Anaconda3\lib\_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "E:\Anaconda3\lib\_strptime.py", line 354, in _strptime
(bad_directive, format)) from None
ValueError: '#' is a bad directive in format '%Y-%#m#%d'
解决这个问题的最pythonic方法是什么?
【问题讨论】:
-
你在这里解析一个时间 datetime ...
-在将日期时间格式化为字符串时应用 .... python 不需要在字符串中使用02来理解它的月份或任何...将月份从字符串解析为日期时间对象? -
删除
%和m之间的-。 -
我需要在没有前导零的情况下格式化输出,而我当前的代码不会发生这种情况..
-
@Kasramvd 在 php 中,您可以使用
j表示不带前导零的月份,或使用d表示带前导零的月份 -
您正在创建一个具有标准表示的
datetime对象。删除这些零是另一个问题,与对象的字符串表示有关。
标签: python python-3.x datetime