// 获取当前时间
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
/*
yyyy:年份,例如:2023
MM:月份,例如:07
dd:日期,例如:06
HH:小时(24小时制),例如:13
mm:分钟,例如:16
ss:秒钟,例如:04
*/
// 格式化输出当前时间
// 使用 DateTimeFormatter 的 ofPattern 方法创建一个格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 使用 format 方法将 LocalDateTime 格式化为指定的字符串
String formattedDateTime = now.format(formatter);
System.out.println(formattedDateTime);
// 需求:在金融系统中,计算两个日期时间之间的天数差
// 需求: 在ERP系统中,计算当前时间距离下一个交货日期的天数差
// 需求:在医疗系统中,记录患者的就诊时长,用于医生和护士的工作记录和统计。
// 需求:在物流系统中,计算货物从出发到到达的总时间
// 自定义时间
LocalDateTime startTime = LocalDateTime.of(2022, 4, 5, 0, 0, 0);
LocalDateTime endTime = LocalDateTime.now();
// ChronoUnit用于 计算日期间隔
// 计算当前时间和另一个时间之间的天数差
// 开始时间放前面 结束时间放后面
long daysDiff = ChronoUnit.DAYS.between(startTime, endTime);
// 计算当前时间和另一个时间之间的年数差 ChronoUnit.YEARS.between(startTime, endTime)
// 计算当前时间和另一个时间之间的小时数差 ChronoUnit.HOURS.between(startTime, endTime)
// 计算当前时间和另一个时间之间的分钟数差ChronoUnit.MINUTES.between(startTime, endTime)
// 计算当前时间和另一个时间之间的相差的周数 ChronoUnit.WEEKS.between(startTime, endTime)
// 计算当前时间和另一个时间之间的相差的月数 ChronoUnit.MONTHS.between(startTime, endTime)
// ..............
// 输出时间差
System.out.println("当前时间与另一个时间之间的天数差:" + daysDiff);
// 需求:在客户关系管理系统中,判断客户最近一次联系时间是否超过3个月,超过则提醒公司员工需要和客户联系感情
LocalDateTime lastContactTime = LocalDateTime.of(2023, 4, 1, 10, 0, 0);
LocalDateTime now = LocalDateTime.now();
long monthsDiff = ChronoUnit.MONTHS.between(lastContactTime, now);
if (monthsDiff >= 3) {
System.out.println("客户最近一次联系时间已超过3个月");
} else {
System.out.println("客户最近一次联系时间在3个月内");
}
// 获取当前日期时间
LocalDateTime now = LocalDateTime.now();
// 获取年份
int year = now.getYear();
// 获取月份
int month = now.getMonthValue();
// 获取日
int day = now.getDayOfMonth();
// 获取周几(1-7,1 表示周一,7 表示周日)
int dayOfWeek = now.getDayOfWeek().getValue();
// 获取日期时间的字符串表示
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = now.format(formatter);
// 输出结果
System.out.println("年 " + year);
System.out.println("月 " + month);
System.out.println("日 " + day);
System.out.println("周 " + dayOfWeek);
System.out.println("目前时间为" + formattedDateTime);
// 假设员工 生日 为 3月17
LocalDateTime birthdayTime = LocalDateTime.of(1900,3,7,00,00,00);
// 获取当前日期时间
LocalDateTime now = LocalDateTime.now();
if(birthdayTime.getMonthValue()==now.getMonthValue() && birthdayTime.getDayOfMonth() == now.getDayOfMonth()){
System.out.println("要给社畜要生日补贴了");
}
//判断某个时间是否在指定的时间范围内
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 指定时间范围(2023年7月1日至2023年7月31日)
LocalDateTime startDate = LocalDateTime.of(2023, 7, 1, 0, 0, 0);
LocalDateTime endDate = LocalDateTime.of(2023, 7, 8, 23, 59, 59);
// 判断当前时间是否在指定时间范围内
// isAfter方法 表示时间在XX时间之后 isBefore方法 表示 时间 在XX时间之前
// isAfter方法 和 isBefore方法 结果都是布尔类型
boolean isWithinRange = now.isAfter(startDate) && now.isBefore(endDate);
// 输出判断结果
System.out.println("当前时间是否在指定时间范围内:" + isWithinRange);
//订单支付倒计时
// 下订单后,有15分钟时效性,在15分钟内未支付,订单自动取消
int countdownMinutes = 15;
// 指定下订单的时间
LocalDateTime orderDate = LocalDateTime.of(2023, 7, 7, 8, 7, 0);
// plus方法用于在当前日期时间上添加一定的时间量,得到一个新的日期时间
// plus方法传两个参数:时间量和时间单位。
// 时间量可以是任意整数值
// 时间单位可以是 ChronoUnit 枚举类中定义的单位,如 ChronoUnit.DAYS、ChronoUnit.HOURS 、 ChronoUnit.MINUTES、ChronoUnit.SECONDS等等。
LocalDateTime paymentDeadline = orderDate.plus(countdownMinutes, ChronoUnit.MINUTES);
// 获取当前时间
LocalDateTime currentTime = LocalDateTime.now();
if(currentTime.isAfter(paymentDeadline)){
System.out.println("订单已自动取消");
}
LocalDateTime处理日期和时间业务场景
最新推荐文章于 2024-08-01 15:47:40 发布