【发布时间】:2016-02-13 02:54:46
【问题描述】:
我已经编写了一个 python 脚本来将原始文本解析为可用数据,但是最近的 DST 时间变化已经把事情搞砸了。这是一些文本,特别是导致问题的部分:
11/1/2015 1:00:37 AM 3.14 0.00 4.18
11/1/2015 1:30:37 AM 3.14 0.00 4.18
11/1/2015 1:00:39 AM 3.14 0.00 4.18
11/1/2015 1:30:39 AM 3.14 0.00 4.18
11/1/2015 2:00:40 AM 3.14 0.00 4.18
文本文件会定期更新并同步到保管箱。在脚本的第一次运行时,它会使用与文件的每一行对应的文档填充 mongodb 集合。每个文档都包含一个日期时间(为了在 mongo shell 中的可读性)、一个时间戳以及与文件中的数据相对应的其他字段。
填充集合后,每 15 秒运行一次循环,将文件中的行数与集合中的文档数进行比较。如果文件包含更多行,则脚本然后读取文件中的最低行并将其解析为可以添加到数据库的文档。它将这个潜在的新文档的时间戳与集合中最新文档的时间戳进行比较
if(newdataDate > latestDate):
db.LiqLog.insert(newdata)
elif(newdataDate < latestDate):
#Throw error, end script
我怎样才能让我的脚本帐户因 DST 而更改日志文件?我能想到的唯一方法是对未来的 DST 时间更改进行硬编码并解决这些问题。该脚本可能会在我们的实验室服务器上连续运行多年,并且由于我无法知道它需要运行多长时间,因此最好它能够处理 DST 而无需硬编码日期。
编辑:我发现online DST 总是从三月的第二个星期日开始,到十一月的第二个星期日结束。我将尝试处理这个问题,一旦我取得进展,我会再次编辑这篇文章。到目前为止,感谢大家的帮助。
【问题讨论】:
-
要小心,因为DST rules changed in 2007 将来可能会再次更改。
标签: python mongodb unix-timestamp dst