1

我打算用 python 编写一个调度程序应用程序,我不会在处理 DST 和 GMT 时遇到麻烦。

作为示例,另请参阅PHP 相关问题 563053

有没有人已经在做类似的事情了?

有没有人已经体验过 PyTZ - Python 时区库?

4

2 回答 2

3

当然,我们中的许多人都从事过日历/调度程序并且熟悉 pytz。你的具体问题是什么,在你指向的 SO 问题和它的答案/评论中还没有得到很好的回答......?

编辑:因此,如果您按照其他问题的最佳答案中的建议进行操作,则没有特别的陷阱。特别是,在内部对 UTC 进行标准化(“GMT”是一个古老的术语和概念)并在 I/O 上转换为/从 timzones(w/DST &c)(就像您应该在内部标准化 Unicode 并将编码/解码为字节,如果必须,仅在 I/O 上!-)。

Python 标准库中有一个简单而灵活的模块,称为sched,它提供了一个可配置的“事件调度程序”,它可能是您应用程序的核心,在calendardatetime等的帮助下。“时间和金钱”中的一些食谱Python Cookbook 第 2 版的一章可能会有所帮助(它可以作为在线盗版广泛使用,尽管作为合著者,我不一定喜欢这个事实;-)。

如果不知道自己在写什么——Web 服务、Web 应用程序、桌面应用程序或其他任何东西,很难说更多。您想支持vCaliCalendarvCalendar、其他形式的互操作/同步/混搭吗?如果支持的话,还有哪些其他应用程序、服务和/或事实上的标准?等等,等等——就像所有的应用程序一样,如果它被证明是成功的,它当然可以成长和成长;-)。

于 2009-09-01T17:43:26.913 回答
3

pytz 效果很好。请务必将您的时间转换并存储为 UTC,并使用 pytz/datetime 转换例程转换为本地时间。这里有一个用法和时区转换的例子基本上:

import datetime
import pytz
datetime.datetime(2008, 1, 31, 22, 56, 13, tzinfo=<UTC>)
utcdate.astimezone(pytz.timezone('US/Pacific'))
# result:    
# datetime.datetime(2008, 1, 31, 14, 56, 13, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)
于 2009-09-02T04:15:54.480 回答