Как мне отформатировать дату в цели C? - PullRequest
0 голосов
/ 05 марта 2019

У меня сейчас есть этот код, и я пытаюсь отформатировать, добавив новую строку между ними, но она не дает мне новую строку.Я делаю это правильно?

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *twelveHourLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_DB"];
dateFormatter.locale = twoHourLocale;
formatString = [NSDateFormatter dateFormatFromTemplate:@"EEEE \n hh:mm" options:0 locale:[NSLocale currentLocale]];
[dateFormatter setDateFormat:formatString];

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

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

Точка вызова -dateFormatFromTemplate:locale:options: состоит в том, чтобы вернуть строку форматирования, которая правильно отформатирована для указанной локали.То есть метод просматривает компоненты даты, которые вы укажете, и упорядочивает их в соответствии с местным обычаем, например, «2 января 2019 года» в США, но «2 января 2019 года» в Европе.Я думаю, что он в основном игнорирует любые части шаблона, которые он не распознает как спецификатор компонента даты.Если он перемещает компоненты даты, как он узнает, где разместить не датированные части, о которых он не знает?

Если вам не нужны разные локали ипросто хотите указать дату с новой строкой, затем вы можете пропустить этот метод и просто создать строку шаблона самостоятельно:

formatString = @"EEEE \n hh:mm";
[dateFormatter setDateFormat:formatString];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"%@", dateString);

Приведенный выше код будет записывать текущую дату с новой строкой между днем ​​недели ивремя, поэтому -stringFromDate: с радостью будет использовать вашу строку формата и сохранить новую строку.

Если вы делаете заботитесь о локалях , но все еще хотите новую строку, вы будетенужно либо создать свои собственные строки формата даты для конкретной локали, либо вызвать -dateFormatFromTemplate:locale:options:, а затем вставить новую строку в нужное место в результате.

0 голосов
/ 05 марта 2019

Кажется, это должно работать на основе этого вопроса: Формат даты в 2 строки

Однако, это быстро, поэтому могут быть другие детали реализации.В худшем случае, вы можете разделить ваши EEEE и hh: mm на 2 разных средства форматирования и объединить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...