在 java 中获取昨天和明天的日期

使用 Localdate.now() 方法获取

LocalDate 是一个 Date 类,它存储了没有时间和区域信息的日期信息。

它有 minusDays() 方法,可以返回以前的日子。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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 类来代替:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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

Calendarjava.lang 包中的一个抽象类,它提供转换特定的日期和时间值。

比如可以使用 getTime() 方法从日历中打印出日期对象。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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 来获得前一天的日期。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
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
    }
}

获取下一个日期可以使用 LocalDateLocalDateTime 类来实现。

对于明天的日期 LocalDate.plusDays() 可以传递 1 作为参数。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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 返回明天的日期和时间:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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() 方法将日历时间设置为明天的日期。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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

    }
}