这是我将NSString
解析为NSDate
对象的类方法。下面是代码:
并运行它,我得到以下输出:<>之前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]
来显示您的日期