NSDate从NSString获取错误的日期

时间:2014-02-22 00:07:21

标签: ios nsdate nsdateformatter

我要做的是拥有一个具有正确当前时间的NSDate。当我将日期转换为字符串时,时间是正确的,但当我转换回NSDate时,时间刚刚结束。

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm"];
[dateFormatter setLocale:[NSLocale currentLocale]];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
NSDate* myDate = [dateFormatter dateFromString:dateString];
NSLog(@"datete:%@ and %@", myDate, dateString);

2014-02-22 00:18:00 +0000 and 21-02-2014 16:18

1 个答案:

答案 0 :(得分:0)

打印NSDate个对象时,请记住description以UTC格式返回日期。因此,如果您发现两个对象之间存在差异,请务必考虑您的时区并将其添加到NSDate的打印值。

如果要在日志和/或UI中正确打印它们,则应使用日期格式化程序,而不是直接打印NSDate对象。日期格式化程序采用本地时区和系统区域设置,并正确打印日期。