如何在java中获取昨天和明天的日期,并举例说明

2,415 阅读3分钟

本教程是关于在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=+24Calendar.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的类,因为这些类在处理日期和时间的操作方面很强大。