【问题标题】:Strange Timezone issue with Tapku Library CalendarTapku 图书馆日历的奇怪时区问题
【发布时间】:2011-09-22 12:36:05
【问题描述】:

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

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

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

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

11/16/2011 17:00 -0500

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

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

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

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

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

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

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

【问题讨论】:

  • 嗨,Deeps,我也面临同样的问题。如果你有,你能告诉我解决方案吗?
  • 很抱歉我还没有得到答复。问题仍然存在..
  • 您能否发布完整的代码,展示您如何解析日期字符串并将其转换为日期?

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


【解决方案1】:

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

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

希望对你有帮助。

【讨论】:

    【解决方案2】:

    所有 [NSTimeZone timeZoneForSecondsFromGMT:0];应替换为 [NSTimeZone systemTimeZone];

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

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

    【讨论】:

    • 感谢您的回答...替换了所有内容并像魅力一样工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2021-11-05
    相关资源
    最近更新 更多