JAVA中增加日期的推荐方法是什么?
我正在使用Calendar
类来增加日期。然而,我所看到的任何一个月都是递增的,直到那个月的第31天,不管这个月是不是二月
下面是我现在使用的代码:
long curDayDate = 1524787200; // April, 27th, 2018
Instant instant = Instant.ofEpochMilli(curDayDate*1000);
LocalDateTime ldt = instant.atZone(ZoneId.of("GMT")).toLocalDateTime();
int gYear = ldt.getYear();
int gMonth = ldt.getMonthValue();
int gDay = ldt.getDayOfMonth();
Calendar Cal = Calendar.getInstance();
Cal.set(gYear, gMonth, gDay);
for(int i = 0; i < 7; i++) {
// Next day
Cal.add(Calendar.DATE, 1);
System.out.println("Next Year = " + Cal.get(Calendar.YEAR) + ", Next Month = " + Cal.get(Calendar.MONTH) + ", Next Date = " + Cal.get(Calendar.DATE));
}
上述代码将持续到4月31日,即使4月份没有第31天
# 1 楼答案
不要使用
Calendar
。它是Java早期版本中引入的大量设计糟糕的日期/时间API的一部分(JDK 1.1中引入了Calendar
),并被Java 8中引入的java.time
包取代如果你想在}
LocalDateTime
中添加一天,请使用^{