如何指定dateFormat元素並尊重當前區域設置規則?我知道我可以使用SimpleDateFormat
並指定我喜歡的格式 - 但它可能在不同的國家/地區是錯誤的。關於當前區域設置的自定義Android日期格式化
我試圖掩蓋DateFormat
的元素,但它僅接受短期,中期和LONG:
DateFormat dayMonth = DateFormat.getDateInstance(DateFormat.DAY_OF_WEEK_IN_MONTH_FIELD | DateFormat.MONTH_FIELD);
Caused by: java.lang.IllegalArgumentException: Illegal date style: 11
at java.text.DateFormat.checkDateStyle(DateFormat.java:843)
at java.text.DateFormat.getDateInstance(DateFormat.java:378)
我想獲得「2016年10月」,或「RIJ 2016」。這可以實現:
DateFormat dayMonth = new SimpleDateFormat("MMM yyyy");
但我不想在我的應用程序中硬編碼此格式。我只看到一種方式:把它放到strings.xml中,翻譯者必須設置它。或者有更好的方法嗎?
你有沒有看着'LocalDateTime' - 也許這可能是SOM你在找什麼?一個例子是:'LocalDateTime.parse(「2016-07-22」)' – ishmaelMakitla
有趣的類,但它的格式方法需要DateTimeFormatter作爲參數 - 我們回到我的問題。 –
我明白了,DateTimeFormatter.ISO_LOCAL_DATE_TIME是什麼呢,它的'format'方法需要'TemporalAccessor' - 可以是'LocalDateTime.parse(「2016-07-22」)'。 – ishmaelMakitla