【发布时间】:2019-05-27 14:53:54
【问题描述】:
设置为 2019-12-27,但打印结果为 2020-01-27。代码有错误吗?
public void testJavaDate(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date checkInDate;
checkInDate = new Calendar.Builder()
.setDate(2019, 12, 27)
.build().getTime();
System.out.println("checkIn sdf: "+sdf.format(checkInDate));
}
【问题讨论】:
-
在旧的
java.util.Calendar类中,月份是 0 索引的,所以 12 月是 11。但不要使用它,而是使用java.time包。 -
您正在使用多年前被 java.time 类取代的糟糕的旧类。与传统类不同,现代类使用合理的编号,例如 1-12 表示 1 月至 12 月,1-7 表示周一至周日。
LocalDate.of( 2019 , 12 , 27 ).toString()➙2019-12-27。为了更清楚,请使用Month枚举。LocalDate.of( 2019 , Month.DECEMBER , 27 ).toString() -
搜索 Stack Overflow,然后再发帖。您可以假设已经提出并回答了任何基本的日期时间问题。
标签: java date calendar settings