Как изменить формат даты/времени?

У меня есть этот формат даты и времени:

2010-05-19 07:53:30

и хотел бы изменить его на:

Wednesday @ 7:53PM 5/19/2010

Я делаю это, которое получает текущий формат:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

но когда я изменяю формат, я заканчиваю с пустым указателем. Например:

formatter.dateFormat = @"hh:mm tt MM-dd-yyyy";
date = [formatter stringFromDate:formattedDate];

дата будет пустой. Я хочу поместить конечный результат в NSString. Было бы хорошо, если время и дата могло бы выйти как раздельное имущество, таким образом, я могу расположить их однако, мне нравится. Какие-либо идеи о том, как я могу изменить форматирование?

1
задан 4thSpace 20 May 2010 в 05:19
поделиться

2 ответа

Я думаю, что проблема в вашей строке форматирования. Вы должны использовать только символы, которые вы найдете в таблице в UTS#35 Date Format Patterns. Я попробовал ваш код, и хотя время hh:mm отображается правильно, форматирование останавливается на tt - не в таблице!

Если вам действительно нужны символы в строке формата, которых нет в таблице, вы можете экранировать их, например hh 'o' clock' a, zzzz - получается формат типа "12 o'clock PM, Pacific Daylight Time".

2
ответ дан 3 September 2019 в 00:26
поделиться

Было бы неплохо, если бы время и дата отображались как отдельные свойства, чтобы я мог расположить их как угодно. Есть идеи, как изменить форматирование?

У вас все наоборот. Если это дата / время, которые будут отображаться пользователю, вам необходимо представить их так, как этого хочет пользователь , а не так, как вы этого хотите. Например, большинство людей за пределами США будут сбиты с толку MM-dd-yyyy, особенно если день меньше 13. Рассмотрите возможность использования -setDateStyle: и -setTimeStyle: . Таким образом, отображаемая строка будет выглядеть так, как ожидал пользователь.

0
ответ дан 3 September 2019 в 00:26
поделиться