Tapku图书馆日历的奇怪时区问题

时间:2011-09-22 12:36:05

标签: iphone ios iphone-sdk-3.0 calendar tapku

我对Tapku图书馆日历有一个奇怪的问题。

我正在Tapku图书馆日历中展示活动。我从美国/多伦多时区的服务器获取日期。即。 -500。

我的系统和日历时区在设置应用中设置为加拿大多伦多。

所以,问题是当日历在错误的日视图(日图块)中显示一个事件时。活动于2011年11月16日举行,并于17日在日历上展示。

11/16/2011 17:00 -0500

所以我找到了将时区作为GMT的解决方案。

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

以上与多伦多时区一起工作正常。现在,我将我的时区设置为罗马,意大利,并且它假设在16日也显示该事件,但它在17日显示。

所以,问题是如果我保持在线以上它与多伦多,加拿大时区以及罗马,意大利时区的问题正常工作如果我删除这条线然后它适用于罗马,意大利和多伦多,意大利的问题。

为此,我尝试设置systemTimeZone和localTimeZone,但仍然没有运气。

那么,我应该怎么做才能让事件在所有时区的正确日视图中保持?

如果您需要任何进一步的详细信息,请与我们联系。

2 个答案:

答案 0 :(得分:2)

以下是类似问题的答案: https://stackoverflow.com/a/9405625/220154

我认为tapku日历将GMT:0设置为用于与您的日期进行比较的日期,因此它与时区混乱很多。当您检查日历中包含的日期时,您可能需要将日期缩短到格林威治标准时间午夜。

希望它有所帮助。

答案 1 :(得分:2)

全部[NSTimeZone timeZoneForSecondsFromGMT:0];应替换为[NSTimeZone systemTimeZone];

当它不是systemTimeZone时,你必须编辑来自UIDatePicker的日期以反映时区的小时变化,如果你不这样做,所有日期将在一天后显示。

以下是问题:https://github.com/devinross/tapkulibrary/issues/40