簡體   English   中英

區域設置的Java日期格式

[英]Java Date Format for Locale

如何找到給定LocaleDateFormat

DateFormat.getDateInstance(int,Locale)

例如:

import static java.text.DateFormat.*;

DateFormat f = getDateInstance(SHORT, Locale.ENGLISH);

然后您可以使用此對象格式化Date s:

String d = f.format(new Date());

如果你真的想知道底層模式(例如yyyy-MMM-dd )那么,你會得到一個SimpleDateFormat對象:

SimpleDateFormat sf = (SimpleDateFormat) f;
String p1 = sf.toPattern();
String p2 = sf.toLocalizedPattern();

TL;博士

DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL )
                 .withLocale( Locale.CANADA_FRENCH );

java.time

原始的日期時間類現在是遺留的,並且已被java.time類取代。

在生成表示日期時間值的String時, DateTimeFormatter有一種通過Locale自動本地化的簡單方法。 指定FormatStyle以指示輸出的長度(縮寫與否)。

DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL );
f = f.withLocale( Locale.CANADA_FRENCH );

獲取當前時刻。 請注意, Locale和時區彼此無關。 一個確定演示,另一個調整為特定的掛鍾時間 因此,您可以在新西蘭擁有一個日語Locale ,或者在這種情況下是印度的時區,其格式為Québécois人閱讀。

ZoneId z = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zdt = ZonedDateTime.now( z );

使用該本地化格式化程序對象生成String。

String output = zdt.format( f );

關於java.time

java.time框架內置於Java 8及更高版本中。 這些類取代了麻煩的舊遺留日期時間類,如java.util.DateCalendarSimpleDateFormat

現在處於維護模式Joda-Time項目建議遷移到java.time類。

要了解更多信息,請參閱Oracle教程 並搜索Stack Overflow以獲取許多示例和解釋。 規范是JSR 310

從哪里獲取java.time類?

ThreeTen-Extra項目使用其他類擴展了java.time。 該項目是未來可能添加到java.time的試驗場。 您可以在這里找到一些有用的類,比如IntervalYearWeekYearQuarter ,和更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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