簡體   English   中英

根據區域設置日期格式,然后獲取日期部分

[英]Format Date according to locale and then get the date part

我要實現的是將yyyyMMdd格式的日期轉換為語言環境格式,即yyyy/MM/dddd/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);

...對SHORTMEDIUMLONGFULL進行試驗,以SHORT最適合您需求的一個,但我懷疑它將是SHORTMEDIUM

(您可以忽略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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM