日期时间格式与内容不匹配

2024-10-02 14:16:18 发布

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

我查了很多和这个话题有关的问题,但是我找不到我的错误。你知道吗

我的代码可以简化为:

date = "2016/07/20"
time = "11:44:20.920"

date_time = datetime.strptime(date + " " + time, '%y/%m/%d %H:%M:%S.%f')

我得到的错误如下:

Traceback (most recent call last):
  File "adma_shortener.py", line 50, in <module>
    adma_time[ii] = datetime.strptime(a, '%y/%m/%d %H:%M:%S.%f').replace(microsecond=0)
  File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '2016/07/20 11:44:20.920' does not match format '%y/%m/%d %H:%M:%S.%f'

有人能看出我的错误吗? 提前谢谢


Tags: 代码inpyformatdatadatetimedatetime
3条回答

年份指令应大写:

date_time = datetime.strptime(date + " " + time, '%Y/%m/%d %H:%M:%S.%f')
#                                                  ^

%y Year without century as a zero-padded decimal number

%Y Year with century as a decimal number.


参考文献:

http://strftime.org/

如果您不太熟悉datetime directives,我建议您使用^{}。这要简单得多。例如:

>>> import dateutil.parser
>>> date = "2016/07/20"
>>> time = "11:44:20.920"
>>> my_date = dateutil.parser.parse('{date} {time}'.format(date=date, time=time))
>>> my_date
datetime.datetime(2016, 7, 20, 11, 44, 20, 920000)

%y是“作为零填充十进制数的无世纪年份”的说明符,表示两位数。改用%Y。你知道吗

相关问题 更多 >

    热门问题