конвертировать время в 12-часовой формат - PullRequest
1 голос
/ 08 декабря 2010

Скажите, пожалуйста, как преобразовать время в 12-часовой формат ..
У меня есть строка, которую я преобразовал в дату, но она в 24-часовом формате ....

Ответы [ 4 ]

4 голосов
/ 08 декабря 2010

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

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

здесь представлено другое решение с использованием регулярных выражений:
Преобразование времени от 24 до 12 часов, вставка символа в строку

3 голосов
/ 08 декабря 2010

учитывая, что у вас есть час с указанным временем ...

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

2 голосов
/ 08 декабря 2010

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

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

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

0 голосов
/ 04 мая 2012

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

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