使用 dateformatter 将 nsstring 传输到 nsdate 时出现奇怪的日期

Strange date when using dateformatter transfer a nsstring to nsdate

那么代码如下:

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date=[dateFormatter dateFromString:@"2015-4-23 10:08"];
NSLog(@"%@",date);

日志是: 2015-05-17 23:24:58.244 测试[25628:871758] 2015-04-23 02:08:00 +0000

为什么 nssting 是 10:08,日期是 02:08? 谢谢。

NSDate 描述总是使用 +000 时区记录日期。您需要使用日期格式来获取正确格式化的日期。

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date=[dateFormatter dateFromString:@"2015-04-23 10:08"];
NSLog(@"%@",[dateFormatter stringFromDate:date]);