Year.of( 2018 )
    .atDay( 308 )
2018-11-04
现代方法使用 Java 8 及更高版本中内置的 java.time 类。
该LocalDate级表示没有时间一天和不同时区的日期,唯一的价值。
这个Year班级代表了一年。并包括一种atDay( dayOfYear )方法,您可以在其中通过一年中的序数日。
int dayOfYear = 308 ;
Year y = Year.of( 2018 ) ;
LocalDate ld = y.atDay( dayOfYear ) ;
转储到控制台。
System.out.println( "dayOfYear: " + dayOfYear + " at year: " + y + " = " + ld ) ;
dayOfYear:308 在年份:2018 = 2018-11-04
至于生成特定格式的字符串,搜索DateTimeFormatter类,因为已经多次覆盖。
顺便说一下,您的特定格式根本不是“SQL 格式”。无论如何,您应该与数据库交换对象,而不仅仅是字符串。使用符合 JDBC 4.2 或更高版本的驱动程序时,请查看JDBC中的getObject和setObject方法。
对于 SQL 标准类型的数据库列的 SQL 访问DATE,请使用 JDBC 4.2 或更高版本LocalDate直接传递对象。不要仅使用字符串来交换日期时间值。
myPreparedStatement.setObject( … , ld ) ;
恢复。
LocalDate ld = myResultSet.getDate( … , LocalDate.class ) ;
该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,和更多。
| 归档时间: | 
 | 
| 查看次数: | 3325 次 | 
| 最近记录: |