语言环境的 Java 日期格式tl;博士java.time关于 java.time
我怎样才能找到给定的 ?DateFormat
Locale
我怎样才能找到给定的 ?DateFormat
Locale
DateFormat.getDateInstance(int,Locale)
例如:
import static java.text.DateFormat.*;
DateFormat f = getDateInstance(SHORT, Locale.ENGLISH);
然后,您可以使用此对象来格式化 s:Date
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类所取代。
DateTimeFormatter
有一种简单的方法,可以在生成字符串来表示日期时间值时通过 Locale
自动本地化。指定 FormatStyle
以指示输出长度(缩写或不缩写)。
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL );
f = f.withLocale( Locale.CANADA_FRENCH );
获取当前时刻。请注意,和时区之间没有任何关系。一个决定演示,另一个调整到特定的挂钟时间。因此,您可以在新西兰有一个日语时区,或者在这种情况下,印度的时区,其演示文稿的格式设置为魁北克人阅读。Locale
Locale
ZoneId z = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zdt = ZonedDateTime.now( z );
使用该本地化格式化程序对象生成字符串。
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
等。