目标c - NSString到NSDate的转换问题:总是相同的日期



这是我将NSString解析为NSDate对象的类方法。下面是代码:

<>之前+ (NSDate *) stringToDate:(NSString *) string {NSDateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss。]AAA Z");NSDate *date = [dateFormatter dateFromString:string];NSLog(@"stringToDate ("%@") = '%@'", 字符串、日期);(dateformat释放);返回日期;}之前

并运行它,我得到以下输出:<>之前stringToDate("2011-07-07 16:26:07.000 +0200") = '2011-07-06 22:00:00 +0000'stringToDate("2011-07-07 16:26:17.000 +0200") = '2011-07-06 22:00:00 +0000'之前

…相同的输出!你能帮我吗?

如果我没记错的话,你的问题是这两个日期不完全相同。

如果是这个问题,在

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

对此负责。它将给定的时间对象转换为GMT+00时区。

你应该写:

NSLog(@"stringToDate("%@") = '%@'", string, 
       [dateFormatter stringFromDate:date]);

否则,NSLog调用date对象的description方法。以下是文档中关于这个方法的说明:

返回接收者的字符串表示形式。

-

(NSString *)描述

接收者以国际格式YYYY-MM-DD HH:MM:SS±HHMM表示的字符串,其中±HHMM表示以小时和分钟为单位与GMT的时区偏移量(例如," 2001-03-24 10:45:32 +0600 ")。

如您所见,该格式与您使用的格式不完全相同。

编辑

尝试更改dateFormatter的dateFormat参数为yyyy-MM-dd HH:mm:ss Z,并使用[dateFormatter stringFromDate:date]来显示您的日期

相关内容

  • 没有找到相关文章

最新更新