2015-05-17 3 views
0

Тогда код ниже:странно дата при использовании dateformatter передать NSString к 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? Спасибо.

+0

Вы живете в UTC + 8 часовой пояс, не так ли? Что вы видите, если правильно. Журнал показывает время в часовой пояс UTC. – rmaddy

+0

Да, он может автоматически изменить часовой пояс, когда nsdate переходит на nssting или nsstring, передает nsdate? – leizh00701

+0

Извините, я не понимаю, о чем вы спрашиваете. В коде нет ничего плохого. Просто записывается дата. – rmaddy

ответ

1

Описание 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]); 
+0

В чем смысл этого? Это просто записывает то же самое, что и исходная строка. – rmaddy

Смежные вопросы