[英]Java Date Format for Locale
如何找到給定Locale
的DateFormat
?
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();
DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH );
原始的日期時間類現在是遺留的,並且已被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 8及更高版本中。 這些類取代了麻煩的舊遺留日期時間類,如java.util.Date
, Calendar
和SimpleDateFormat
。
現在處於維護模式的Joda-Time項目建議遷移到java.time類。
要了解更多信息,請參閱Oracle教程 。 並搜索Stack Overflow以獲取許多示例和解釋。 規范是JSR 310 。
從哪里獲取java.time類?
ThreeTen-Extra項目使用其他類擴展了java.time。 該項目是未來可能添加到java.time的試驗場。 您可以在這里找到一些有用的類,比如Interval
, YearWeek
, YearQuarter
,和更多 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.