ios - NSDateComponent 给我一天递增 1

标签 ios objective-c nsdate

我知道这是时区问题,但我不知道如何解决。

我有一个 NSDate = 2013-07-29 01:10:01 +0000

当我执行 NSDateComponent 时,日期组件显示 28!

我现在在 EST 时区,但为什么不直接显示 29?这是错误吗?

如果不是,我该如何解决才能正确显示?还是已经合适了?

谢谢。

最佳答案

问题是您的日历实例当前设置为您的时区,因此它将日期解释为比格林威治标准时间早 5 小时(这是您在问题中粘贴的内容)。

要解决此问题,您应该在您使用的日历上设置 timeZone 属性,以使日期组件脱离日期。假设您的日历变量名为 calendar,这样的事情可能会成功:

calendar.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

关于ios - NSDateComponent 给我一天递增 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18140186/

相关文章:

iOS:特定于应用程序的自动完成文本预测/建议

objective-c - 加载 QTMovie 时发出警告

ios - 将 CATransform3D 转换为 CIVector 的 CIPerspectiveTransform,替换 UIGetScreenImage

ios - Swift UITextField 子类以编程方式处理文本更改

ios - 在 swift iOS 中获取 UTC 日期到本地日期

ios - Swift NSOrderedSet 迭代访问属性 - CoreData

ios - NSDictionary 的键名在 NSObject 之后发生变化

ios - CMMotionManager的多个实例,确定更新间隔

ios - 将音频缓冲区 [从文件] 添加到 'live' 音频缓冲区 [录制到文件]

objective-c - 给定过去的 NSDate 和重复间隔,计算从现在开始的下一个事件