用Python存储时间 - 最佳格式?

Jon*_*ley 0 python datetime

在Python中存储时间(在我的情况下在ZODB中,但适用于任何数据库),您使用什么格式(纪元,日期时间等),为什么?

Ale*_*lli 5

日期时间模块的标准类型的日期和时间的现代Python的处理,我使用它,因为我喜欢的标准(我也认为这是精心设计的); 我通常也有pytz的时区信息.

当然,大多数DB都有自己标准的存储日期和时间的方式,但是来自DB的现代Python适配器通常支持datetime(使用它的另一个好理由;-)在Python方面 - 例如,这就是我使用Google App Engine的存储,Python自己的嵌入式SQLite等等.


Mic*_*lon 5

如果数据库具有本机日期时间格式,即使涉及编码和解码,我也尝试使用它.即使这不是100%标准,如SQLITE,我仍然会使用SQLITE3帮助页面底部附近描述的日期和时间适配器.

在所有其他情况下,我将使用ISO 8601格式,除非它是一个Python对象数据库,存储对象的某种二进制编码.

ISO 8601格式是可排序的,并且在数据库中通常需要用于索引.此外,它是明确的,所以你知道2009-01-12是在1月,而不是在12月.改变月份和日期位置的人总是将年份放在最后,因此首先放置它会阻止人们自动假设格式不正确.

当然,您可以根据需要重新格式化应用程序中的显示和输入,但数据库中的数据通常可以使用其他工具查看,而不是应用程序.