首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS中的日期/时间解析:如何处理(或不处理)时区?

iOS中的日期/时间解析:如何处理(或不处理)时区?
EN

Stack Overflow用户
提问于 2011-04-06 07:44:07
回答 3查看 32.8K关注 0票数 16

我有一个JSONMVC3网站,它通过ASP.NET与我的iOS应用程序通信。作为JSON响应中发送的对象的一部分,我有输出2011-04-05 16:28:22 -07:00yyyy-MM-dd HH:mm:ss ZZZ格式的日期。我如何在iOS中解析它?

这就是我现在正在处理的代码:

代码语言:javascript
复制
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSDate *date = [dateFormatter dateFromString:@"2011-04-05T16:28:22-0700"];

NSLog(@"%@; %@; %@", dateFormatter, date, [NSTimeZone localTimeZone]);

首先要注意的是,2011-04-05 16:28:22 -07:00必须看起来像2011-04-05T16:28:22-0700,其中T替换了第一个空格(假设这代表时间,或者字符串的时间部分从哪里开始?),第二个空格被删除,时区中的冒号也被删除。我想我会找到一种方法来格式化.NET发回的字符串,以符合iOS将解析的字符串。

真正的问题是,输出的日期比我在JSON响应中发送的日期早7个小时。因此,iOS将2011-04-05 16:28:22 -07:00输出为2011-04-05 23:28:22 +0000,就我的应用程序而言,这是错误的。

到目前为止,我找到的唯一解决方案是将JSON中的日期作为2011-04-05 16:28:22 +00:00发送,但这仍然是错误的,因为我改变了实际日期应该是什么。

无论如何,我希望有人看一看,让我知道如何将.NET通过yyyy-MM-dd HH:mm:ss ZZZ (我认为可以重写为yyyy-MM-ddTHH:mm:ssZZZ)格式输出的日期字符串解析为我可以在iOS中使用的NSDate对象。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5559912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档