2014-02-06 4 views
0

Я пытаюсь извлечь дату из текстового поля и преобразовать его в определенный формат дата, ниже код:Проблемы при попытке форматирования Даты

NSString *dateStr = self.hello.text; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"MM/dd/yyyy"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 

Однако я получаю дату один день до значение в день. Я новичок в iOS, и я подозреваю, что месяц Java, день в iOS начинается с 0 в течение первого дня?

Пример:

Я вхожу в текстовом поле 02/07/2010. то * dateStr дает мне то же значение, изменение происходит после форматирования значения * дата показывает дату, например: 02/06/2010. Это на один день раньше, чем введенная дата.

+0

показать даты примера в вашем текстовом поле .. что вы получили ошибку? – Mani

+0

Позвольте мне изменить вопрос – User3

+0

, можете ли вы также показать выход NSLog даты, которую вы получаете? – Volker

ответ

2

Попробуйте установить часовой пояс, как показано ниже код

NSString *dateStr = self.hello.text; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM/dd/yyyy"]; 
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
+0

Какая разница в GMT или UTC, я знаю разницу в Java, но здесь я не уверен в этом. Я думаю, что UTC будет более уместным, чем GMT. Пожалуйста, поделитесь знаниями :) – User3

+0

Я всегда использую GMT, когда мне это нужно, но я думаю, что они дают тот же результат. Почему бы вам не проверить его? –

+0

Да, я на нем! Спасибо за руководство :) – User3

1

Просто добавьте эту строку. Он основан на часовом поясе. See this list of time zone country(only see that three letters abbrevation in bracket, основываясь на этом списке, вы должны принять решение об использовании аббревиатуры GMT, UTC или EST. Если вы находитесь в Индии, используйте код ниже.

[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]]; 

Обсуждение яблочной

В общем, не рекомендуется использовать сокращения для уникальных экземпляров, таких как «UTC» или «GMT», за исключением. сокращения часовых поясов не стандартизированы и поэтому данная аббревиатура может иметь несколько значения, например, «EST» относится к восточному поясному времени как в Штатах и ​​Австралии Соединенных

+0

Я не хочу рассматривать какой-либо часовой пояс, как я могу это сделать? – User3

+0

дублированный ответ –

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