Apu*_*ngh 4 java localization date-formatting java-time
使用新的Java 8 java.time API,我需要转换LocalDate并获取月和日的全名.像三月(不是三月)和周一(不是周一).3月13日星期五应格式化为3月13日星期五..不是3月13日星期五.
使用自动本地化.无需指定格式模式.
localDate.format(
DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.UK )
)
Run Code Online (Sandbox Code Playgroud)
2017年1月23日星期一
LocalDate
.of( 2017 , Month.JANUARY , 23 )
.getMonth()
.getDisplayName(
TextStyle.FULL ,
Locale.CANADA_FRENCH
)
Run Code Online (Sandbox Code Playgroud)
让维耶
从字面上看你的标题,我会使用方便的Month枚举.
LocalDate ld = LocalDate.of( 2017 , Month.JANUARY , 23 );
Month month = ld.getMonth() ; // Returns a `Month` object, whereas `getMonthValue` returns an integer month number (1-12).
Run Code Online (Sandbox Code Playgroud)
让java.time完成自动本地化的工作.要进行本地化,请指定:
例如:
String output = month.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ; // Or Locale.US, Locale.KOREA, etc.
Run Code Online (Sandbox Code Playgroud)
让维耶
如果您希望整个日期本地化,DateTimeFormatter请完成工作.在这里我们使用FormatStyle而不是TextStyle.
例:
Locale l = Locale.CANADA_FRENCH ; // Or Locale.US, Locale.KOREA, etc.
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( l ) ;
String output = ld.format( f );
Run Code Online (Sandbox Code Playgroud)
dimanche 23 janvier 2107
该java.time框架是建立在Java 8和更高版本.这些类取代麻烦的老传统日期时间类,如java.util.Date,Calendar,和SimpleDateFormat.
现在处于维护模式的Joda-Time项目建议迁移到java.time类.
要了解更多信息,请参阅Oracle教程.并搜索Stack Overflow以获取许多示例和解释.规范是JSR 310.
您可以直接与数据库交换java.time对象.使用符合JDBC 4.2或更高版本的JDBC驱动程序.不需要字符串,不需要课程.java.sql.*
从哪里获取java.time类?
该ThreeTen-额外项目与其他类扩展java.time.该项目是未来可能添加到java.time的试验场.您可以在此比如找到一些有用的类Interval,YearWeek,YearQuarter,和更多.