Swift — несколько стилей единиц в DateComponentsFormatter?

#ios #swift #nsdatecomponentsformatter

Вопрос:

Я пытаюсь найти способ использовать Swift DateComponentsFormatter с несколькими unitsStyle свойствами, в зависимости от фактического компонента.

Например, я хотел бы использовать .abbreviated свойство для дня и .brief для других, создавая такие строки, как: 1d 9hr 22min . Если бы я использовал .brief все компоненты, я бы получил 1day 9hr 22min . Если бы я использовал .abbreviated , я бы получил 1d 9h 22m .

Похоже, что комбинация, которую я хочу, невозможна, потому unitsStyle что это свойство форматера. Но кто-нибудь знает, могу ли я сделать более сложную конфигурацию? Или мне придется создать несколько DateComponentsFormatter s?

(Я хочу использовать DateComponentsFormatter , чтобы получить локализацию единиц времени. Таким образом, любые альтернативные форматы также должны были бы поддерживать локализацию из коробки, а не иметь локализованные строки форматирования.)

Комментарии:

1. Два форматера, один для дня и один для часа и минут с разными стилями, а затем вы сами объединяете строки в один

2. @JoakimDanielson для английского языка это должно быть легко, но если OP хочет поддерживать разные языки, это не так просто

3. @LeoDabus Вы имеете в виду, потому что порядок может быть другим? Я не учел этого, и да, в любом случае это обходной путь/взлом.