本教程是关于在java中寻找昨天的日期和明天的日期的多种方法。
我们有多种方法可以在java中检索最近一天的日期或前一天的日期。
Java8在java.time包中引入了日期类。你可以查看之前关于LocalDate例子的帖子
在java8中用LocalDate获取前一天的日期是很容易的。
以下是一些步骤
- 使用
Localdate.now()方法获取当前日期,LocalDate是一个Date类,它存储了没有时间和区域信息的日期信息。 - 它有
minusDays方法,可以返回以前的日子
import java.time.LocalDate;
public class Test {
public static void main(String[] args) throws Exception{
LocalDate currentDate = LocalDate.now();
System.out.println(currentDate); // 2021-09-01
LocalDate previousDay = currentDate.minusDays(1);
System.out.println(previousDay); //2021-08-31
}
}
如果你想要以前的日期和时间,你可以使用[LocalDateTime](java8-learn-localdatetime-basics-with.html) 类来代替。LocalDate
import java.time.LocalDateTime;
public class Test {
public static void main(String[] args) throws Exception{
LocalDateTime currentDate = LocalDateTime.now();
System.out.println(currentDate); // 2021-09-01T10:08:55.568
LocalDateTime previousDay = currentDate.minusDays(1);
System.out.println(previousDay); //2021-08-31T10:08:55.568
}
}
Calendar是java.lang包中的一个抽象类,它提供转换特定的日期和时间值。
这个例子打印了一个昨天的日期和时间
- 它使用getTime方法从日历中打印出日期对象。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
public static void main(String[] args) throws Exception{
DateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1);
System.out.println(calendar.getTime()); //Tue Aug 31 09:56:28 IST 2021
dateFormat.format(calendar.getTime()); // Change format as per "yyyy-MMM-dd"
}
}
让我们看一个如何将昨天的日期设置到日历对象中的例子
你可以使用Calendar.HOUR= -24小时或Calendar.DAY_OF_MONTH =-1来获得前一天的日期,如所给的例子。
import java.util.Calendar;
public class Test {
public static void main(String[] args) throws Exception{
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR, -24);
System.out.println(calendar.getTime()); //Tue Aug 31 11:08:25 IST 2021
Calendar calendar2 = Calendar.getInstance();
calendar2.add(Calendar.DAY_OF_MONTH, -1);
calendar2.getTime();
System.out.println(calendar.getTime()); //Tue Aug 31 11:08:25 IST 2021
}
}
以下是在java中获取下一个日期的方法:
在Java8中,我们可以使用LocalDate和LocalDateTime类来实现。
LocalDate.plusDays() 对于明天的日期,我们可以传递1作为参数。
这个例子只返回明天的日期,而不是时间信息。
import java.time.LocalDate;
public class Test {
public static void main(String[] args) throws Exception{
LocalDate currentDate = LocalDate.now();
System.out.println(currentDate); // 2021-09-01
LocalDate previousDay = currentDate.plusDays(1);
System.out.println(previousDay); //2021-09-02
}
}
LocalDateTime返回明天的日期和时间
import java.time.LocalDateTime;
public class Test {
public static void main(String[] args) throws Exception{
LocalDateTime currentDate = LocalDateTime.now();
System.out.println(currentDate); // 2021-09-01T11:14:45.223
LocalDateTime previousDay = currentDate.plusDays(1);
System.out.println(previousDay); //2021-09-02T11:14:45.223
}
}
- 使用日历对象 日历对象是一个遗留类,在java8版本之前可以使用。
在日历对象中添加Calendar.HOUR=+24 或Calendar.DAY_OF_MONTH=+1 ,使用add() 方法将日历时间设置为明天的日期。
下面是一个例子
import java.util.Calendar;
public class Test {
public static void main(String[] args) throws Exception{
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR, +24);
System.out.println(calendar.getTime()); //Tue Aug 31 11:08:25 IST 2021
Calendar calendar2 = Calendar.getInstance();
calendar2.add(Calendar.DAY_OF_MONTH, +1);
calendar2.getTime();
System.out.println(calendar.getTime()); //Tue Aug 31 11:08:25 IST 2021
}
}
总结
你学会了在java中使用以下方法来获得上一个和下一个日期
- Java8的LocalDate和LocalDateTime类
- java中的传统日历类
我更喜欢java8的类,因为这些类在处理日期和时间的操作方面很强大。