NSDateFormatter返回意外结果 [英] NSDateFormatter returns unexpected results

查看:114
本文介绍了NSDateFormatter返回意外结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么以下iOS 4.2代码会返回两个不同的时间?

Why does the following iOS 4.2 code return two different times?

  NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
  NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
  [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  [dateFormatter setTimeZone:gmt];
  NSString* dateString = [dateFormatter stringFromDate:[NSDate date]];
  NSLog(@"Date/Time is %@", dateString);

  NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease];
  [inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];    
  NSDate* date = [inputFormatter dateFromString:dateString];        
  NSLog(@"Date/Time is %@", date);

退货:

2011-01-04 16:15:12.966 WA[687:207] Date/Time is 2011-01-04 21:15:12
2011-01-04 16:15:12.967 WA[687:207] Date/Time is 2011-01-05 02:15:12 +0000

第一个值是预期的,但我希望第二个值是相同的。

The first value is expected, but I would expect the second to be the same.

布鲁斯

推荐答案

您的日期格式似乎都不包含时区,因此您可能会获得您的位置与GMT之间的差异。

Neither of your date formats appear to include the time zone, so you're likely getting the difference between your location and GMT.

这篇关于NSDateFormatter返回意外结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆