在 Python 中是否有与 C# 的 DateTime.TryParse()
等效的方法?
我指的是它避免抛出异常的事实,而不是它猜测格式的事实。
最佳答案
如果你不想要异常,捕获异常。
try:
d = datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
except ValueError:
d = None
在 Python 的禅宗中,显式优于隐式。 strptime
always 返回以指定格式解析的日期时间。这是有道理的,因为你必须定义失败时的行为,也许你真正想要的是。
except ValueError:
d = datetime.datetime.now()
或
except ValueError:
d = datetime.datetime.fromtimestamp(0)
或
except ValueError:
raise WebFramework.ServerError(404, "Invalid date")
通过明确说明,下一个阅读它的人会清楚故障转移行为是什么,这就是您需要的。
或者也许您确信日期不会无效;它来自数据库 DATETIME 列,在这种情况下不会捕获异常,因此不要捕获它。
关于python - 是否有与 C# 的 DateTime.TryParse() 等效的 Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615533/