tl; dr
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
现代方法使用java.time类。
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
注意我们如何指定Locale
诸如这样Locale.CANADA_FRENCH
的名称来确定用于翻译当天名称的人类语言。
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
顺便说一下,您可能对标准的ISO 8601周编号方案感兴趣:yyyy-Www-d
。
2018-W01-2
第一周是日历年的第一个星期四。周从星期一开始。一年有52周或53周。日历年的最后/前几天可能会落入下一个/上一个基于周的年份。
末尾的一位数字是星期几,星期一至星期日为1-7。
将ThreeTen-Extra库类添加到该类的项目中YearWeek
。
关于java.time
该java.time框架是建立在Java 8和更高版本。这些类取代麻烦的老传统日期时间类,如java.util.Date
,Calendar
,和SimpleDateFormat
。
现在处于维护模式的Joda-Time项目建议迁移到java.time类。
要了解更多信息,请参见Oracle教程。并在Stack Overflow中搜索许多示例和说明。规格为JSR 310。
在哪里获取java.time类?
该ThreeTen-额外项目与其他类扩展java.time。该项目为将来可能在java.time中添加内容提供了一个试验场。你可能在这里找到一些有用的类,比如Interval
,YearWeek
,YearQuarter
,和更多。
dd
as格式呢?