我正在构建一个通用的自定义strToDatetime(string)
函数。日期字符串的格式可能不同。两种最流行的选择似乎是datetime.strptime(string, format)
和{}。似乎datetime.strptime()
需要一个格式,dateutil.parser()
不需要,因此可能的解决方案是:
- 测试日期字符串模式以查找日期字符串格式并使用
datetime.strptime()
- 使用
dateutil.parser()
这是对的吗?备选方案1(难度更大,将来可能需要维护)具有优势,例如性能?在
Tags:
我总是选择最简单的(dateutil.parser),总有人替你做这项工作,而且不太可能在格式错误的日期(根据你的格式)吐出错误。在
当然,有时您希望它在格式错误、可能不明确的日期抛出错误,在这种情况下,您应该使用
strptime
!在性能测试:
我分别给}打了100000次电话。在
parse(d)
和{似乎如果你知道精确的日期格式,那么
strptime
大约快3倍,虽然这不是一个非常科学的实验,但我认为它给出了一个很好的指示。那么,这种轻微的速度提升值得额外的不必要的并发症/头痛吗?这取决于你(但可能不是)。在
dateutil的
parse()
方法非常灵活,几乎可以解析任何您向它抛出的内容。在但是,由于这种灵活性,如果您的输入被限制为一定数量的模式,那么检查这些模式并使用
datetime.datetime.strptime()
的自定义代码可以轻松地击败它。在因为这完全取决于您需要测试的模式的数量,所以您唯一能做的就是测量哪个模式对于您的特定用例来说会更快。在
相关问题 更多 >
编程相关推荐