gpt4 book ai didi

Python 在运行时更改变量/时区?

转载 作者:行者123 更新时间:2023-12-01 04:48:01 32 4
gpt4 key购买 nike

好吧,这是我遇到过的最奇怪的错误之一!

首先:我不是 Python 程序员,该脚本是由 friend 编写的(我认为他的大部分内容来自示例)。

该脚本的用途:将日历信息(CET 时间)从 XML 文件解析为 ics 文件,以便人们可以将其添加到他们的 Google 日历等(这些文件是持续更新)。

我尝试解决的问题:使其正确导入 Google 日历(包含正确的时间等)

我做了什么:更改了时间转换以包含时区。

奇怪的问题:执行时,时区从 CET 更改为 CEST(据我所知,在同一事件中)。保存时区的变量仅分配一次(在遍历事件的循环之前),所以我一生都无法找出导致问题的原因!

输出片段:

BEGIN:VEVENT
SUMMARY:Ungdomsaktivitet
DTSTART;TZID=CET;VALUE=DATE-TIME:20150327T193000
DTEND;TZID=CET;VALUE=DATE-TIME:20150327T193000
LOCATION:Kaj
END:VEVENT
BEGIN:VEVENT
SUMMARY:Ungdomsmöte
DTSTART;TZID=CET;VALUE=DATE-TIME:20150328T193000
DTEND;TZID=CET;VALUE=DATE-TIME:20150328T193000
DESCRIPTION:Ekumeniskt ungdomsmöte mellan Skara\, Götene & Lidköping. S
amuel Östersjö predikar\, Elias Olofsson med team leder lovsång.
LOCATION:Pingstkyrkan\, Lidköping
END:VEVENT
BEGIN:VEVENT
SUMMARY:Bön
DTSTART;TZID=CEST;VALUE=DATE-TIME:20150329T100000
DTEND;TZID=CEST;VALUE=DATE-TIME:20150329T100000
LOCATION:Pingstkyrkan\, Lidköping
END:VEVENT
BEGIN:VEVENT
SUMMARY:Gudstjänst
DTSTART;TZID=CEST;VALUE=DATE-TIME:20150329T110000
DTEND;TZID=CEST;VALUE=DATE-TIME:20150329T110000
DESCRIPTION:Evangelicenter
LOCATION:Pingstkyrkan\, Lidköping
END:VEVENT
BEGIN:VEVENT
SUMMARY:Ekumenisk bön
DTSTART;TZID=CEST;VALUE=DATE-TIME:20150331T100000
DTEND;TZID=CEST;VALUE=DATE-TIME:20150331T100000
DESCRIPTION:i Baptistkyrkan
LOCATION:Baptistkyrkan\, Lidköping
END:VEVENT

处理时间的代码:

lt = LocalTimezone()

# [...]

d = datetime.strptime(dateStr, "%Y-%m-%d")
t = datetime.strptime(timeStr, "%H:%M:%S").time()
event.add('dtstart', datetime.combine(d,t).replace(tzinfo=lt))
event.add('dtend', datetime.combine(d,t).replace(tzinfo=lt))

完整代码: http://pastebin.com/Gf68BWc2

我很高兴能得到关于如何解决这个问题的所有想法!

最佳答案

如果ltpytz时区,那么您可能需要更改代码:

datetime.combine(d,t).replace(tzinfo=lt)

对此:

lt.localize(datetime.combine(d,t))

您可能还应该使用 full time zone name (例如:欧洲/斯德哥尔摩)而不是CETCEST

此外,您应该注意 summer time begins in Europe on March 29, 2015 。由于您的一些日期是在更改之前,有些是在更改之后,因此您确实会有一些在 CET 中,一些在 CEST 中。

关于Python 在运行时更改变量/时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016724/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com