2010-12-08 2 views

ответ

2

Когда ты скажите, что вы преобразовали его в дату, что вы имеете в виду? Вы имеете в виду, что у вас есть это в объекте NSDate? Если да, то дата не в формате даты 24hr. NSDate не относится к тому, как будет выглядеть дата на экране.

Форматирование происходит из настроек локализации. Вот как это должно быть. Я не хочу раз в 12-часовом формате больше, чем вы хотите в течение 24 часов.

Но для прямого ответа на вопрос, возможно, вам придется написать свой собственный код форматирования, если вы хотите переопределить значения по умолчанию. Я должен был сделать это, чтобы обрезать ошибки в NSDateFormatter, когда я получал даты от стороннего источника данных.

3

считая вас есть час Int названный время ...

если (время> 12) время = время-12;

3

Вы можете использовать 24-часовой формат часов вместо 12-часового формата. Поэтому используйте NSDateFormatter с H в строке формата. Использование одного из предопределенных форматов закончится использованием локализации вашей системы, которая, вероятно, является 12-часовым форматом.

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init]; 
[inputFormatter setDateFormat:@"HH:mm"]; 

другое решение представлено здесь с использованием регулярных выражений:
24hr to 12hr time convert, insert character to string

0

Чтобы изменить формат даты с 12 до 24 часов или с 24 до 12 просто изменить чч: мм до чч: мм где Н в течение 12 часов и H в течение 24 часов. Не забудьте указать свое местоположение.

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"HH:mm"]; 
Смежные вопросы