sat*_*oru 6 python datetime datetime-format
我使用如下所示的语句datetime从字符串创建一个对象:
t = datetime.strptime("0023-10-10", "%Y-%m-%d")
稍后,我的代码中的某个地方使用该t对象并strftime使用相同的格式字符串调用该方法:
t.strftime("%Y-%m-%d")
这导致了ValueError: year=23 is before 1900; the datetime strftime() methods require year >= 1900.
似乎%Y输入的验证在这两种类似的方法中是不同的.所以我必须做以下事情,以确保我不接受一些糟糕的岁月,如23:
try:
format = "%Y-%m-%d"
t = datetime.strptime("0023-10-10", format)
t.strftime(format)
except ValueError:
...
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来进行此验证.
我喜欢你使用 atry..except来验证输入的想法,因为在 Python 的未来版本中,年数 < 1000 可能是可以接受的。
代码中的注释表明此限制仅限于 Python 当前的 strftime 实现。
在 Python 2.7 中,异常发生在years < 1900,但在 Python 3.2 中,异常发生在years < 1000:
import datetime as dt
format = "%Y-%m-%d"
t = dt.datetime.strptime("0023-10-10", format)
try:
t.strftime(format)
except ValueError as err:
print(err)
Run Code Online (Sandbox Code Playgroud)
印刷
year=23 is before 1000; the datetime strftime() methods require year >= 1000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9904 次 |
| 最近记录: |