2014-02-16 4 views
1
NSString * dateString = [NSString stringWithFormat: @"%@",item.date]; 

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; 
    NSDate* myDate = [dateFormatter dateFromString:dateString]; 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"dd/M/Y 'ás' HH:mm ZZZZ"]; 
    NSString *stringFromDate = [formatter stringFromDate:myDate]; 

Данные поступают в как .... 2014-08-15T08: 30: 00-04: 00не могу понять символы NSDateFormatter

Я хочу, чтобы эта дата будет .... 15 - 08 - 2014 12:00

Я хочу, чтобы дата отображалась в формате GMT ​​или, по крайней мере, показывала правильное местное время начала мероприятия, если вы живете в США или Японии, и не показывать GMT часовой пояс.

Я пробовал Z ZZ ZZZ ZZZZ ZZZZZ г ZZ ZZZ ZZZZ

ничего ... может кто-нибудь помочь?

+0

Просто упоминая, вы должны взглянуть на дату и время NSDateFormatter в * стилей *. Они намного проще и меньше ошибок, чем dateFormats. Последнее должно использоваться, если, например, вы анализируете дату из внешнего источника, например веб-службы. – JiaYow

+0

@JiaYow О, нет. Стили зависят от того, что пользователь выбирает в своих Системных настройках. Пользователь может совершенно небрежно разорвать ваше приложение, если вы полагаетесь на стили форматирования даты. Если они используются, их следует использовать только для определения того, что должно отображаться, а не для интерпретации строки даты. – trudyscousin

+0

вы можете отображать системный часовой пояс с помощью NSTimeZone * timeZone = [NSTimeZone localTimeZone]; – Pawan

ответ

0

попробуйте этот код

NSString * dateString = @"2014-08-15T08:30:00-04:00"; 

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; 
NSDate* myDate = [dateFormatter dateFromString:dateString]; 

//[dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; 
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 

NSLog(@"date--%@", [dateFormatter stringFromDate:myDate]); 

output--`date--15-08-2014 18:00:00` 
+0

Нет необходимости устанавливать часовой пояс даты форматирования в локальный часовой пояс - по умолчанию. – rmaddy

+0

Да, я написал это, чтобы дать базовую идею, если кто-то хочет изменить часовой пояс. – Pawan

+0

И 'Z' нельзя использовать для часового пояса в формате' -xx: xx'. Для этого вам понадобится 'ZZZZZ'. – rmaddy

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