【发布时间】:2015-03-17 04:33:50
【问题描述】:
所以有一个关于网络应用程序的部分,用户可以在其中输入事件,网络服务以以下格式将这些事件发送到移动应用程序:
"yyyy-MM-dd'T'HH:mm:ssZZZZZ"
我在尝试将字符串转换为日期时遇到问题,因此我可以从事件中获取时间(也以正确的时区格式化),例如,这里是“2015-03-20T20” :00:00-07:00",我拉的时间应该是太平洋时间下午 1 点。但相反,我要么得到 8PM 或 3AM(取决于我是否将 UTC 缩写添加到日期格式化程序)。
这是我到目前为止所拥有的,我知道我在这里遗漏了一些东西,也许还有另一个需要使用的日期格式化程序,但到目前为止我无法弄清楚我哪里出错了。
NSString *datePattern = @"yyyy-MM-dd'T'HH:mm:ssZZZZZ";
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:datePattern];
NSString *sString = [valueDict valueForKey:@"start_date"];
NSDate *startDate = [dateFormatter dateFromString:sString];
NSDateFormatter *timeFormatter = [NSDateFormatter new];
[timeFormatter setDateFormat:@"hh:mm a"];
[timeFormatter setLocale:[NSLocale systemLocale]];
NSString *timeString = [timeFormatter stringFromDate:startDate];
【问题讨论】:
-
谢谢@Rob,我想这就是造成混乱的原因,因为创建在数据库中存储日期的过程的 Web 开发团队说这是 UTC 格式的偏移量,并且网站显示它是太平洋时间下午 1 点(这是用户选择的时间)。因此,如果它错误地转换它们,我会让他们知道它在他们身边
标签: ios nsdate nsdateformatter utc