изменить формат даты с 12/12/12 на 2012-12-12 ios6
Я пробовал :
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"];
NSLog(@"Date = %@", dateCheck);
И выходное значение: Date = 2012-12-11 18:30:00 +0000
Как я должен достичь вышеуказанного результата, я не знаю, в чем проблема.Пожалуйста помочь.Я был бы очень признателен за помощь.Спасибо заранее.
4 ответа:
Попробуйте это,
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"MM/dd/yy"]; NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"]; NSLog(@"Date = %@", dateCheck); [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSString *dateString = [dateFormatter stringFromDate:dateCheck]; NSLog(@"dateString = %@", dateString);
Вывод:
dateString = 2012-12-12
@"MM/dd/yyyy"
представляет собой 12/12/2012, а не 12/12/12. И если вы хотите конвертировать в 2012-12-12, вам нужно установить формат даты как@"yyyy-MM-dd"
, а затем преобразовать в строку снова, как показано выше.Для получения более подробной информации о формате даты, проверьте это Шаблоны формата даты Unicode.
Здесь первое преобразование-это изменение строки на дату, а затем мы используем
@"yyyy-MM-dd"
для преобразования в строку снова в требуемом формате.
Вам нужны два форматера. Один для преобразования исходной строки в
Обратите внимание, что когда вы регистрируетесь какNSDate
(как у вас сейчас), а второй для преобразованияNSDate
в новую строку с требуемым форматом.NSDate
, он всегда будет отображаться в том формате, который вы видите.
Если вы хотите, чтобы дата была отформатирована определенным образом, вы можете продолжать использовать
NSDateFormatter
. Просто добавьте[dateFormatter setDateFormat:@"yyyy-MM-dd"];
.
NSString *string = [dateFormatter stringFromDate:dateCheck];
NSLog(@"Date = %@", string);
Кроме того, как отметил ACB, вам нужно преобразовать из@"12/12/2012"
, Если вы хотите использоватьMM-dd-yyyy
, в противном случае вам нужно использоватьMM-dd-yy
`Date = 2012-12-11 18:30:00 +0000`
Из
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"MM/dd/yy"]; NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"]; NSLog(@"Date = %@", dateCheck); [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSString *dateString = [dateFormatter stringFromDate:dateCheck]; NSLog(@"dateString = %@", dateString);
Вы получаете правильную дату. Поскольку метка времени и локаль различны, вы не сможете увидеть 2012-12-12...