[英]Format Date according to locale and then get the date part
我要實現的是將yyyyMMdd
格式的日期轉換為語言環境格式,即yyyy/MM/dd
或dd/MM/yyyy
等。我對時間部分不感興趣,我只需要日期。
該函數將采用字符串日期,並以語言環境格式返回字符串日期。
我目前擁有的是:
dateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault());
convertedDate = dateFormat.parse("20120521");
在此之后我嘗試的所有操作要么返回帶有時間和GMT等的長字符串,要么返回與函數相同的字符串。
聽起來您已經對解析部分進行了排序-與格式化部分完全分開。
對於格式化,我懷疑您想要:
DateFormat localeFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
String text = localeFormat.format(convertedDate);
...對SHORT
, MEDIUM
, LONG
和FULL
進行試驗,以SHORT
最適合您需求的一個,但我懷疑它將是SHORT
或MEDIUM
。
(您可以忽略getDateInstance
的第二個參數,它將使用默認的語言環境,但為個人清楚起見,我個人建議您將其明確包含在內。)
您想使用內置的DateFormat類型
DateFormat df = DateFormat.getDateInstance(DateFormat.Short, Locale.getDefault()));
根據Javadocs
使用getDateInstance獲取該國家/地區的正常日期格式。 還有其他靜態工廠方法可用。 使用getTimeInstance獲取該國家的時間格式。 使用getDateTimeInstance獲取日期和時間格式。 您可以將不同的選項傳遞給這些工廠方法,以控制結果的長度。 從短到中到長到滿。 確切結果取決於語言環境,但通常:
SHORT是完全數字的,例如12.13.52或3:30 pm MEDIUM更長,例如1952年1月12日LONG更長,例如1952年1月12日或3:30:32 pm FULL被完全指定,例如Tuesday, 1952年4月12日或太平洋標准時間下午3:30:42。
這是您問題的答案: 如何在Java中按語言環境格式化日期?
一個例子:
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale);
String formattedDate = df.format(yourDate);
另外,如果您需要對Date做很多事情,請考慮使用Joda: Java,無需時間即可獲取Date
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.