Java 如何替换setDate和getDate
不推荐使用的代码,如何替换Java 如何替换setDate和getDate,java,deprecated,Java,Deprecated,不推荐使用的代码,如何替换setDate和getDate,现在代码可以工作,但我不能这样呈现它。我试过日历,但我不知道它是如何工作的。代码点是将日历中的确切天数向后移动 public void minusDay() { int days = dateRange(); toDate.setDate(toDate.getDate()-days); Java8DateAPI在LocalDateTime实例上支持minusDays和plusDays方法 如果您不想使用Java8D
setDate
和getDate
,现在代码可以工作,但我不能这样呈现它。我试过日历,但我不知道它是如何工作的。代码点是将日历中的确切天数向后移动
public void minusDay() {
int days = dateRange();
toDate.setDate(toDate.getDate()-days);
Java8DateAPI在
LocalDateTime
实例上支持minusDays
和plusDays
方法
如果您不想使用Java8DateAPI转换整个系统,那么您可以将Date
对象转换为LocalDateTime
并进行处理。您还需要使用ZonedDateTime
来考虑转换时的时区
public void minusDay() {
int days = dateRange();
LocalDateTime ldt = LocalDateTime.ofInstant(toDate.toInstant(), ZoneId.systemDefault());
ldt.minusDays(days);
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
toDate = Date.from(zdt.toInstant());
}
源代码。Java8DateAPI在
LocalDateTime
实例上支持minusDays
和plusDays
方法
如果您不想使用Java8DateAPI转换整个系统,那么您可以将Date
对象转换为LocalDateTime
并进行处理。您还需要使用ZonedDateTime
来考虑转换时的时区
public void minusDay() {
int days = dateRange();
LocalDateTime ldt = LocalDateTime.ofInstant(toDate.toInstant(), ZoneId.systemDefault());
ldt.minusDays(days);
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
toDate = Date.from(zdt.toInstant());
}
源代码。“现在代码工作”。那就别碰它。你说的是
java.util.Date
吗?是的,它是java.util.Date。假设它是java.util.Date
(java SE中有10多个setDate()
方法),上面说:“不推荐使用。从JDK版本1.1开始,由Calendar.set(Calendar.DAY\u of_MONTH,int Date)代替。”(大多数不推荐使用的方法/字段都有一条带有替代选项的消息)setTime
?表示包-“日期、时间、瞬间和持续时间的主API”-及其类(使用的不是很新的API,而不是Date
,Calendar
,…)“现在代码工作”。那就不要碰它。你说的是java.util.Date
吗?是的,它是java.util.Date。假设它是java.util.Date
(java SE中有10多个setDate()
方法),上面说:“不推荐使用。从JDK版本1.1开始,由Calendar.set(Calendar.DAY\u of_MONTH,int Date)代替。”(大多数不推荐使用的方法/字段都有一条带有替代选项的消息)setTime
?表示包-“日期、时间、瞬间和持续时间的主API”-及其类(使用的不是很新的API,而不是Date
,Calendar
,…)