times是一个小型的、极简的python库,用于处理通用时间和任意时区之间的时间转换。
times的Python项目详细描述
注意: 这个图书馆将不再维修。您可能想使用 优秀的[箭头](http://crsmithdev.com/arrow/)库。
>;“应该有一种而且最好只有一种显而易见的方法。”
事实上,0.7版本的Times已经被重写为在 箭头,所以它仍然提供Times接口,但是您已经在使用 箭头。您可能很容易用箭头替换times函数调用 物体。
-
次数
生成状态: [![生成状态](https://travis-ci.org/nvie/times.svg?branch=master)](http://travis-ci.org/nvie/times) [![覆盖状态](https://img.shields.io/coveralls/nvie/times.svg)](https://coveralls.io/r/nvie/times?branch=master)
times是一个处理时间的小型、极简的python库。 与时区之间的转换,一劳永逸。
接受时间
不要和当地的时报合作。当您必须接受本地时间输入时(例如 从用户),立即将其转换为世界时:
`pycon >>> times.to_universal(local_time, 'Europe/Amsterdam') datetime.datetime(2012, 2, 1, 10, 31, 45, 781262) `
第二个参数可以是pytz.timezone实例或时区字符串。
如果local_time变量已包含时区信息,则必须将 呼叫的源时区。
为了实施最佳实践,times永远不会为您隐式转换时间, 即使这在技术上是可能的。
日期字符串
如果要接受字符串形式的日期时间表示(例如, 通过json api),您可以轻松地将它们转换为通用日期时间:
`pycon >>> import time, times >>> print times.to_universal('2012-02-0311:59:03-0500') # auto-detects source timezone `
times使用[dateutil][1]中提供的字符串解析例程。注意 从字符串中自动检测到源时区。如果字符串 包含时区偏移量,不允许显式指定。
如果字符串不包含任何时区偏移量,则必须指定 源时区显式:
`pycon >>> print times.to_universal('2012-02-03 11:59:03', 'Europe/Amsterdam') `
这与times.format()相反。
POSIX时间戳
如果您喜欢使用unix(posix)时间戳,可以将它们转换为 安全的日期时间表示很容易:
`pycon >>> import time, times >>> print times.to_universal(time.time())2012-02-03 11:59:03.588419 `
注意,to_universalauto检测到您给它一个unix时间戳。
要获取通用日期时间的unix时间戳表示,请使用:
`pycon >>> print times.to_unix(universal_time) `
当前时间
当您想记录当前时间时,可以使用这种方便的方法:
`pycon >>> import times >>> print times.now() datetime.datetime(2012, 2, 1, 11, 51, 27, 621491) `
呈现时间
要向软件的最终用户显示时间,您应该显式地 将您的世界时设置为用户的本地时区。
`pycon >>> import times >>> now = times.now() >>> print times.format(now, 'CET') 2012-02-01 21:32:10+0100 `
与to_universal函数一样,第二个参数可以是 时区实例或时区字符串。
注意:使用 到本地。不过,你可能不应该这么做,除非你想 strftime()多次返回结果的本地日期。不管怎样,你 建议直接使用times.format()。
[1]:http://labix.org/python-dateutil#head-c0e81a473b647dfa787dc11e8c69557ec2c3ecd2