java.time.LocalDateTime 测试日期的精度
package zwf;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
/**
* 测试下LocalDateTime类的用法
*
* @author ZengWenFeng
* @date 2025.04.03
* @email 117791303@qq.com
* @mobile 13805029595
*/
public class LocalDateTimeTest
{
public LocalDateTimeTest()
{
// TODO Auto-generated constructor stub
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
LocalDateTime yesterday = today.minusDays(1);
LocalDateTime tomorrow = today.plusDays(1);
System.out.println("today = " + today);
System.out.println("yesterday = " + yesterday);
System.out.println("tomorrow = " + tomorrow);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = tomorrow.format(formatter);
System.out.println("当前时间的格式化字符串: " + formattedDateTime);
LocalDateTime today1 = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
System.out.println("today1 = " + today1);
// 获取当月第一天的最小时间
LocalDateTime currentMonthFirstDay = today1.with(TemporalAdjusters.firstDayOfMonth())
.withHour(0)
.withMinute(0)
.withSecond(0)
.withNano(0);
// 获取上月第一天的最小时间
LocalDateTime lastMonthFirstDay = today1.minusMonths(1)
.with(TemporalAdjusters.firstDayOfMonth())
.withHour(0)
.withMinute(0)
.withSecond(0)
.withNano(0);
// 获取下月第一天的最小时间
LocalDateTime nextMonthFirstDay = today1.plusMonths(1)
.with(TemporalAdjusters.firstDayOfMonth())
.withHour(0)
.withMinute(0)
.withSecond(0)
.withNano(0);
System.out.println("当月第一天的最小时间: " + currentMonthFirstDay);
System.out.println("上月第一天的最小时间: " + lastMonthFirstDay);
System.out.println("下月第一天的最小时间: " + nextMonthFirstDay);
System.out.println("指定时间: " + LocalDateTime.of(2025, Month.APRIL, 3, 0, 0, 0, 0));
System.out.println("指定时间: " + LocalDateTime.of(2025, 4, 3, 0, 0, 0, 0));
//获取指定日期前一月的第一天的最小时间
LocalDateTime firstDayOfPreviousMonth = YearMonth.from(today1).minusMonths(1).atDay(1).atTime(LocalTime.MIN);
//获取指定日期所在月的第一天的最小时间
LocalDateTime firstDayOfMonth = YearMonth.from(today1).atDay(1).atTime(LocalTime.MIN);
//获取指定日期下一月的第一天的最小时间
LocalDateTime firstDayOfNextMonth = YearMonth.from(today1).plusMonths(1).atDay(1).atTime(LocalTime.MIN);
System.out.println("前一月的第一天的最小时间: " + firstDayOfPreviousMonth);
System.out.println("所在月的第一天的最小时间: " + firstDayOfMonth);
System.out.println("下一月的第一天的最小时间: " + firstDayOfNextMonth);
/*
*
*
today = 2025-04-03T00:00
yesterday = 2025-04-02T00:00
tomorrow = 2025-04-04T00:00
当前时间的格式化字符串: 2025-04-04 00:00:00
today1 = 2025-04-03T23:59:59.999999999
当月第一天的最小时间: 2025-04-01T00:00
上月第一天的最小时间: 2025-03-01T00:00
下月第一天的最小时间: 2025-05-01T00:00
指定时间: 2025-04-03T00:00
指定时间: 2025-04-03T00:00
前一月的第一天的最小时间: 2025-03-01T00:00
所在月的第一天的最小时间: 2025-04-01T00:00
下一月的第一天的最小时间: 2025-05-01T00:00
*
*
*/
}
}
java.time.Month
开始时间 - 结束时间