Мне нужно показать дату с 2-значным днем, 2-значным месяцем, 4-значным годом в соответствии с местным порядком. Поэтому для April 10th 2020
я хочу показать
- для локали США:
MM/DD/YYYY
-> 04/10/2020
- для локали Великобритании:
DD/MM/YYYY
-> 10/04/2020
- для локали DE (Германия):
DD.MM.YYYY
-> 10.04.2020
Я безуспешно попробовал следующее:
// this one already fails for DE, because it gives 10.04.20 (only 2 digit years)
myDate?.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT))
// works for DE (gives 10.04.2020), fails for UK as is gives 10 Apr 2020 instead of 10/04/2020
myDate?.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM))
Итак, как мне получить локально адаптированный формат даты только с 2 цифрами день / месяц и 4 цифры год? Обратите внимание, что я ищу общее решение, 3 языка, явно указанные здесь, являются лишь примерами.
Я на самом деле использую порт java.time
для Android (ThreeTenABP
), хотя это не должно быть актуальным.