我对Tapku图书馆日历有一个奇怪的问题。
我正在Tapku图书馆日历中展示活动。我从美国/多伦多时区的服务器获取日期。即。 -500。
我的系统和日历时区在设置应用中设置为加拿大多伦多。
所以,问题是当日历在错误的日视图(日图块)中显示一个事件时。活动于2011年11月16日举行,并于17日在日历上展示。
11/16/2011 17:00 -0500
所以我找到了将时区作为GMT的解决方案。
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
以上与多伦多时区一起工作正常。现在,我将我的时区设置为罗马,意大利,并且它假设在16日也显示该事件,但它在17日显示。
所以,问题是如果我保持在线以上它与多伦多,加拿大时区以及罗马,意大利时区的问题正常工作如果我删除这条线然后它适用于罗马,意大利和多伦多,意大利的问题。
为此,我尝试设置systemTimeZone和localTimeZone,但仍然没有运气。
那么,我应该怎么做才能让事件在所有时区的正确日视图中保持?
如果您需要任何进一步的详细信息,请与我们联系。
答案 0 :(得分:2)
以下是类似问题的答案: https://stackoverflow.com/a/9405625/220154
我认为tapku日历将GMT:0设置为用于与您的日期进行比较的日期,因此它与时区混乱很多。当您检查日历中包含的日期时,您可能需要将日期缩短到格林威治标准时间午夜。
希望它有所帮助。答案 1 :(得分:2)
全部[NSTimeZone timeZoneForSecondsFromGMT:0];应替换为[NSTimeZone systemTimeZone];
当它不是systemTimeZone时,你必须编辑来自UIDatePicker的日期以反映时区的小时变化,如果你不这样做,所有日期将在一天后显示。