我正在为java.util.Date和java.time.LocalDateTime之间的java-8转换编写一些测试代码,发现异常似乎发生在从正常时间到夏季的转换后的一小时内,当年是2038年或更高.
我只是想知道这是jdk8中的错误,还是我做错了什么?
注意:我使用的是Windows-7,64位jdk,所以不应该受到2038-unix bug的影响,这会产生更糟糕的影响.
这是我的演示代码:
package conversiontest;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
public class ConversionTest {
public static void main(String[] args) {
new ConversionTest().testDateConversion();
}
// Method under test:
public java.util.Date toJavaUtilDate(LocalDateTime localDateTime) {
return java.util.Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
// Test-code:
public void testDateConversion() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LocalDate localDate = LocalDate.of(2016, 1, 1);
LocalTime localTime = LocalTime.of(3, 22, 22); // 03:22:22
while …
Run Code Online (Sandbox Code Playgroud)