一. 概述
以前在java处理时间, 我们都是用Date(), 但Date()在高并发中不安全, java8后推荐使用LocalDateTime()
二. API说明
方法 | 说明 |
---|---|
format() | 日期格式化 |
getYear | 获取年 |
getMonthValue() | 获取月 |
getDayOfYear() | 获取一年中的第几天 |
getDayOfWeek().getValue() | 获取星期几 |
getDayOfMonth() | 获取一个月中的第几天 |
getHour() | 获取小时 |
getMinute() | 获取分钟 |
getSecond() | 获取秒 |
compareTo() | 日期比较, 小于返回负值, 大于放回正值 |
isAfter() | 是否在指定日期之后 |
isBefore() | 是否在指定日期之前 |
withHour() | 修改时间的小时数为目标值 |
withDayOfMonth() | 修改时间的月中天为目标值 |
withYear() | 修改时间的年份为目标值 |
withMonth() | 修改时间的月份为目标值 |
withDayOfYear() | 修改时间的年中天为目标值 |
withHour() | 修改时间的小时为目标值 |
withMinute() | 修改时间的分钟为目标值 |
withMinute() | 修改时间的分钟为目标值 |
withSecond() | 修改时间的秒为目标值 |
minusDays() | 当前时间减去指定天数 |
minusHours() | 当前时间减去指定小时数 |
minusYears() | 当前时间减去指定年数 |
minusMonths() | 当前时间减去指定月数 |
minusMinutes() | 当前时间减去指定分钟数 |
minusSeconds() | 当前时间减去指定秒数 |
plusYears() | 当前时间增加指定年数 |
plusMonths() | 当前时间增加指定月数 |
plusDays() | 当前时间增加指定天数 |
plusHours() | 当前时间增加指定小时数 |
plusMinutes() | 当前时间增加指定分钟 |
plusSeconds() | 当前时间增加指定秒数 |
三. 使用示例
public static void main(String[] args) {
// 日期格式类
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 字符串转日期
LocalDateTime localDateTime = LocalDateTime.parse("2020-02-23 11:11:11",dateTimeFormatter);
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 日期转字符串
String dateFormatter = localDateTime.format(dateTimeFormatter);
//获取秒数
Long second1 = localDateTime.toEpochSecond(ZoneOffset.of("+8"));
//获取毫秒数
Long milliSecond = localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
// 时区
ZoneId zoneId = ZoneId.systemDefault();
// Date 转 LocalDateTime
localDateTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
// LocalDateTime 转 Date
Date date = Date.from(localDateTime.atZone(zoneId).toInstant());
// 获取年
int year = localDateTime.getYear();
// 获取月
int month = localDateTime.getMonthValue();
// 获取一年中的第几天
int dayOfYear = localDateTime.getDayOfYear();
// 获取星期几
int dayOfWeek = localDateTime.getDayOfWeek().getValue();
// 获取月份的第几天
int dayOfMonth = localDateTime.getDayOfMonth();
// 获取小时
int hour = localDateTime.getHour();
// 获取分
int minute = localDateTime.getMinute();
// 获取秒
int second = localDateTime.getSecond();
// 日期比较, 小于返回负值, 大于放回正值
int compare = localDateTime.compareTo(now);
// 是否在日期之后
boolean after = localDateTime.isAfter(now);
// 是否在指定日期之前
boolean before = localDateTime.isBefore(now);
// 修改时间的小时数为目标值
LocalDateTime localDateTime1 = localDateTime.withHour(18);
// 修改时间的月中天为目标值
LocalDateTime localDateTime2 = localDateTime.withDayOfMonth(13);
// 修改时间的年份为目标值
LocalDateTime localDateTime3 = localDateTime.withYear(2019);
// 修改时间的月份为目标值
LocalDateTime localDateTime4 = localDateTime.withMonth(2);
// 修改时间的年中天为目标值
LocalDateTime localDateTime5 = localDateTime.withDayOfYear(35);
// 修改时间的小时为目标值
LocalDateTime localDateTime6 = localDateTime.withHour(12);
// 修改时间的分钟为目标值
LocalDateTime localDateTime7 = localDateTime.withMinute(5);
// 修改时间的秒为目标值
LocalDateTime localDateTime8 = localDateTime.withSecond(24);
// 当前时间减去指定天数
LocalDateTime localDateTime9 = localDateTime.minusDays(12);
// 当前时间减去指定小时数
LocalDateTime localDateTime10 = localDateTime.minusHours(2);
// 当前时间减去指定年数
LocalDateTime localDateTime11 = localDateTime.minusYears(1);
// 当前时间减去指定月数
LocalDateTime localDateTime12 = localDateTime.minusMonths(4);
// 当前时间减去指定分钟数
LocalDateTime localDateTime13 = localDateTime.minusMinutes(5);
// 当前时间减去指定秒数
LocalDateTime localDateTime14 = localDateTime.minusSeconds(24);
// 当前时间增加指定年数
LocalDateTime localDateTime15 = localDateTime.plusYears(1);
// 当前时间增加指定月数
LocalDateTime localDateTime16 = localDateTime.plusMonths(3);
// 当前时间增加指定天数
LocalDateTime localDateTime17 = localDateTime.plusDays(4);
// 当前时间增加指定小时数
LocalDateTime localDateTime18 = localDateTime.plusHours(34);
// 当前时间增加指定分钟
LocalDateTime localDateTime19 = localDateTime.plusMinutes(3);
// 当前时间增加指定秒数
LocalDateTime localDateTime20 = localDateTime.plusSeconds(23);
}
网友评论