在不同时区对NSDates进行比较?

Ric*_*kiG 5 iphone cocoa objective-c nsdate nsdateformatter

我有一个NSDates我使用字符串构建的数组[NSDate dateFromString] 在我解析的xml中获取字符串还有一个时区字符串.据我所知,在手册NSDate中没有自我处理时区.我是否需要始终将此时​​区值存储在某处并在NSDate每次需要时将其与所有物配对?

我还需要弄清楚,如果一个活动在伦敦10点开始,但我在丹麦,我的iPhone设置为丹麦时间,我的"伦敦活动"应该在09:00显示.

再次,如果一个事件在伦敦10点开始,并在丹麦中午12点结束,如果我要使用具有丹麦设置的iPhone比较开始时间和结束时间,我会得到它的持续时间.活动是02:00活动,虽然英国时间10点,丹麦中午12点仅相隔1小时.

NSdate在一个时区的范围内,这些东西的效果非常好,但引入时区部分只会让一切变得复杂.有没有办法抽象/隐藏所有这些计算,因为我发现可能会犯很多错误.

我已经浏览过Apple的NSDateformatter和NSDate指南,但是它们非常含糊,并且运行了大量已弃用的代码:/

谢谢你给予的任何帮助.

Bri*_*rij 1

您应该采用一种标准时区(例如 UTC/GMT 格式)进行所有计算。