python中关于datetime函数,你可能犯过的错

python中关于datetime函数,你可能犯过的错

python 错误提示很友好,他总会提醒你在哪一行,有是因为什么犯的错

  1. 注意大小写
from datetime import datetime 
birthday=input('your birthday:(dd/mm/yyyy)')
birthday_date=datetime.strptime(birthday,'%d/%m/%y')
print('birthday :'+str(birthday_date))

报错如下:

ValueError: time data '& D:/Anaconda3/envs/paddle_env/python.exe f:/workplace-vsc/one/times.py' does not match format '%d/%m/%y' 

这个是因为啊 代码的第3行 %d/%m/%y 错了,应该改成 %d/%m/%Y

这里面的y应该是大写d的Y

  1. 注意输入格式
from datetime import datetime 
birthday=input('your birthday:(dd/mm/yyyy)')
birthday_date=datetime.strptime(birthday,'%d/%m/%Y')
print('birthday :'+str(birthday_date))

报错如下:

your birthday:(dd/mm/yyyy)01012001
Traceback (most recent call last):
  File "f:/workplace-vsc/one/times.py", line 5, in <module>
    birthday_date=datetime.strptime(birthday,'%d/%m/%Y')
  File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 359, in _strptime
    (data_string, format))
ValueError: time data '01012001' does not match format '%d/%m/%Y'

我还在想不应该啊,整个的代码我可以保证是正确的啊,为什么还会报错,明明可以运行,怎么我一输入就有问题。
可以看到,我输入的时候写的是 01012001 而需要填写入的格式为 (dd/mm/yyyy) ,后面报错说的是 not match format 格式不匹配,所以正确的输入格式应给是 01/01/2001 这样才是正确的。你以为成功了?nonono
运行结果如下:

PS F:\workplace-vsc\one> 01/01/2001
0.000499750124937531

满心欢喜,结果还是有问题,遇见这个问题不要慌,没有什么是刷新一下解决不了的,Ctrl+F5重新运行试试。

运行结果如下:

your birthday:(dd/mm/yyyy)01/01/2001
birthday :2001-01-01 00:00:00

虽然成功了,但也还是要手欠一下不是,输入一下超出时间段代码试试

your birthday:(dd/mm/yyyy)15/15/2001
Traceback (most recent call last):
  File "f:/workplace-vsc/one/times.py", line 5, in <module>
    birthday_date=datetime.strptime(birthday,'%d/%m/%Y')
  File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "D:\Anaconda3\envs\paddle_env\lib\_strptime.py", line 359, in _strptime
    (data_string, format))
ValueError: time data '15/15/2001' does not match format '%d/%m/%Y'

因为没有15月,找不到对应的格式,所有又报了 does not match format 的错误
这下就知道了 格式错误 首先反省自己的输入。

这样就愉快的解决了

发布了20 篇原创文章 · 获赞 2 · 访问量 858

猜你喜欢

转载自blog.csdn.net/qiyihan/article/details/104912953
今日推荐