2013-04-23 2 views
0

я застрял на некоторое время даты в строке парсинга с помощью NSDateFormatterНевозможно разобрать дату из строки с помощью NSDateFormatter

Даты в строке в формате ниже

1/1/2011 12:00:00 AM

Ниже приведен код, я использую для анализа

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"]; 
[dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
[dateFormatter setDateStyle:NSDateFormatterShortStyle]; 
NSDate *date = [[NSDate alloc]init]; 
date = [dateFormatter dateFromString:@"1/1/2011 12:00:00 AM"]; 

Этот код работает с датой @ "12/31/2011" и формат @ "MM/DD/YYYY"

Пожалуйста, помогите

+0

вам нужно только это: '[dateFormatter setDateFormat: @" MM/dd/yyyy HH: mm: ss a "];' – Maulik

+1

Уже есть много подобных вопросов и ответов. Вам просто нужно указать dateFormat как «MM/dd/yyyy hh: mm: ss a» или HH, если ваши часы 24-часового формата. Нет необходимости устанавливать стили. проанализируйте дату и затем установите формат, если вы хотите преобразовать дату в другие форматы. – Anupdas

+0

Каждые несколько часов я прочитал вопрос о формате даты. Почему они просто не запускают поиск? –

ответ

2

использовать мой сильфона пользовательский метод и разобрать что дата в другой формат ...

-(NSString *)changeDateFormat:(NSString*)stringDate dateFormat:(NSString*)dateFormat getwithFormat:(NSString *)getwithFormat{ 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:dateFormat]; 

    NSDate *date = [dateFormatter dateFromString:stringDate]; 

    [dateFormatter setDateFormat:getwithFormat]; 

    NSString *convertedString = [dateFormatter stringFromDate:date]; 
    //NSLog(@"Converted String : %@",convertedString); 
    return convertedString; 
} 

использовать этот метод, как сильфон ..

NSString *strSDate = [self changeDateFormat:@"1/1/2011 12:00:00 AM" dateFormat:@"dd/MM/yyyy hh:mm:ss a" getwithFormat:@"dd/MM/yyyy"]; 
NSLog(@"Converted String : %@",strSDate); 

Установите любой формат, который вы хотите в getwithFormat параметр и установить формат dateFormat параметра, который вы имеете с вашей даты строки ...

OUTPUT IS => преобразованная строка: 01/01/2011

+0

@ParasJoshi нет необходимости создавать новые dateFormatter после получения даты, вы можете просто изменить формат, который это :). Отредактировано – Anupdas

+0

ya Я знаю здесь, если он просто добавит в этот форматтер, тогда он будет работать, но я просто даю этот метод, который использовался в любое время с любым форматом .. его очень простой метод, что вы говорите ?? :) –

+0

Да, он будет работать до тех пор, пока не будет проблемы с часовым поясом, если строка даты ввода имеет timeZone, она работает безупречно. Но если нет, тогда может возникнуть проблема. Подобно серверу отправки в UTC и с текущей датой настройкиFormatter предполагает, что dateString находится в localTimeZone. – Anupdas

0

Попробуйте

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 
//First format date from string 
NSDate *date = [dateFormatter dateFromString:@"01/01/2011 12:00:00 AM"]; 

//Set date formatter to specific format 
[dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
[dateFormatter setDateStyle:NSDateFormatterShortStyle]; 

//Log the value 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
Смежные вопросы