[英]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.