2015-02-21 4 views
0

У меня есть NSString «dateString», который содержит дату и время в данном формате.Как получить дату и время из форматированной строки в iOS

"MM/dd/yyyy HH:mm:ss a".

Я хочу получить данные из dateString с помощью NSDateFormatter, а затем я пытаюсь показать в строке "strDate". Я могу получить данные, но единственная проблема заключается в том, что я не получаю правильное значение для "hour".

Для Ex:

dateString = 1/23/2015 7:06:37 AM 
strDate = 01/23/2015 00:06:37 am 

Как решить эту проблему. Заранее спасибо. Это мой код:

-(NSString *)getDateQuestion:(NSString *)dateString 
{ 
NSLog(@"dateString = %@",dateString); 

//NSString to NSDate 
NSDate   *datefromString = [[NSDate alloc] init]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+5:30"]]; 
[dateFormatter setTimeZone: [NSTimeZone systemTimeZone]]; 

[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 

datefromString     = [dateFormatter dateFromString:dateString]; 
NSLog(@"dateString1 = %@",datefromString); 

//NSDate convert to NSString 
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+5:30"]]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 

NSString  *strDate   = [dateFormatter stringFromDate:datefromString]; 
NSLog(@"strDate = %@",strDate); 

return strDate; 
} 
+0

При печати даты, вы установить часовой пояс? NSDate не имеет информации о часовом поясе. – HAS

+0

Да. Я использую часовой пояс «GMT». Можете ли вы предложить, какой часовой пояс для Индии. как я использую +5: 30 для Индии. – adi012

+0

Можете ли вы опубликовать код, который вы используете для преобразования строки на дату и даты в строку? – HAS

ответ

2

Просто Pass Правильной даты Время строки в функцию и не установить часовой пояс Ненужного снова и снова ... я надеюсь, что это поможет вам ...

NSDate *dat = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC+05:30"]]; 

[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 

NSString * dateString =[dateFormatter stringFromDate:dat]; 
NSLog(@"dateString = %@",dateString); 
NSLog(@"dateString1 = %@",dateString); 

//NSDate convert to NSString 
[dateFormatter setDateFormat:@"HH:mm:ss a"]; 

NSString  *strDate   = [dateFormatter stringFromDate:dat]; 
NSLog(@"strDate = %@",strDate); 

HH означает 24 часа.

hh satnds в течение 12 часов.

+0

Спасибо, Этот код работает для меня ..... – adi012

1
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 

Заменить "MM/dd/yyyy hh:mm:ss a"

+0

Большое спасибо ... – adi012

+0

@AdityaYadav Я не знаю. что означает его ответ? ... –

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