0

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

我在 Tapku 图书馆日历中显示事件。我正在从美国/多伦多时区的服务器获取日期。IE。-500。

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

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

11/16/2011 17:00 -0500

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

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

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

所以,问题是,如果我保持上述行,它适用于加拿大多伦多时区和罗马,意大利时区问题,如果我删除这条线,那么它适用于罗马,意大利和多伦多,意大利问题。

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

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

如果您需要更多详细信息,请告诉我。

4

2 回答 2

2

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

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

希望能帮助到你。

于 2012-02-23T01:02:29.017 回答
2

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

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

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

于 2012-10-24T02:48:56.937 回答