java中Date,LocalDate, LocalTime,LocalDateTime特点以及常用方法

Date

特点

  1. java.time.Date是Java早期的日期类,包含日期和时间
  2. 存在设计缺陷,列入非线程安全,与java.sql.Date混淆
  3. 不推荐使用

LocalDate

特点

  1. 表示没有时间的日期,例如:2024-07-19。
  2. 不包含时区信息。
  3. 常用于表示生日、假期、年度纪念日等不需要时间的场景

常用方法

LocalDate now = LocalDate.now(); // 当前日期
LocalDate specificDate = LocalDate.of(2024, 7, 19); // 特定日期
LocalDate parsedDate = LocalDate.parse("2024-07-19"); // 从字符串解析


int year = specificDate.getYear(); // 获取年份
Month month = specificDate.getMonth(); // 获取月份
int dayOfMonth = specificDate.getDayOfMonth(); // 获取月份中的第几天
DayOfWeek dayOfWeek = specificDate.getDayOfWeek(); // 获取星期几
int dayOfYear = specificDate.getDayOfYear(); // 获取年份中的第几天


LocalDate tomorrow = specificDate.plusDays(1); // 增加一天
LocalDate nextMonth = specificDate.plusMonths(1); // 增加一个月
LocalDate nextYear = specificDate.plusYears(1); // 增加一年
LocalDate previousWeek = specificDate.minusWeeks(1); // 减少一周

boolean isLeapYear = specificDate.isLeapYear(); // 是否是闰年
boolean isAfter = specificDate.isAfter(LocalDate.now()); // 是否在当前日期之后
boolean isBefore = specificDate.isBefore(LocalDate.now()); // 是否在当前日期之前

LocalTime

特点

  1. 表示一天中的时间,例如:14:30:15。
  2. 不包含日期和时区信息。
  3. 常用于表示每天的固定时间,例如会议时间、闹钟时间等。

常用方法

LocalTime now = LocalTime.now(); // 当前时间
LocalTime specificTime = LocalTime.of(14, 30); // 特定时间
LocalTime parsedTime = LocalTime.parse("14:30"); // 从字符串解析

int hour = specificTime.getHour(); // 获取小时
int minute = specificTime.getMinute(); // 获取分钟
int second = specificTime.getSecond(); // 获取秒
int nano = specificTime.getNano(); // 获取纳秒

LocalTime plusHours = specificTime.plusHours(1); // 增加一小时
LocalTime plusMinutes = specificTime.plusMinutes(30); // 增加三十分钟
LocalTime minusSeconds = specificTime.minusSeconds(15); // 减少十五秒

boolean isBefore = specificTime.isBefore(LocalTime.NOON); // 是否在中午之前
boolean isAfter = specificTime.isAfter(LocalTime.NOON); // 是否在中午之后

LocalDateTime

  1. 示日期和时间,例如:2024-07-19T14:30:15。
  2. 不包含时区信息。
  3. 常用于表示需要具体日期和时间的场景,例如会议预约、航班起飞时间等。

常用方法

LocalDateTime now = LocalDateTime.now(); // 当前日期和时间
LocalDateTime specificDateTime = LocalDateTime.of(2024, 7, 19, 14, 30); // 特定日期和时间
LocalDateTime parsedDateTime = LocalDateTime.parse("2024-07-19T14:30"); // 从字符串解析

int year = specificDateTime.getYear(); // 获取年份
Month month = specificDateTime.getMonth(); // 获取月份
int dayOfMonth = specificDateTime.getDayOfMonth(); // 获取月份中的第几天
DayOfWeek dayOfWeek = specificDateTime.getDayOfWeek(); // 获取星期几
int hour = specificDateTime.getHour(); // 获取小时
int minute = specificDateTime.getMinute(); // 获取分钟
int second = specificDateTime.getSecond(); // 获取秒


LocalDateTime tomorrowSameTime = specificDateTime.plusDays(1); // 增加一天
LocalDateTime nextMonthSameTime = specificDateTime.plusMonths(1); // 增加一个月
LocalDateTime nextYearSameTime = specificDateTime.plusYears(1); // 增加一年

LocalDateTime plusHours = specificDateTime.plusHours(1); // 增加一小时
LocalDateTime plusMinutes = specificDateTime.plusMinutes(30); // 增加三十分钟
LocalDateTime minusSeconds = specificDateTime.minusSeconds(15); // 减少十五秒

LocalDate datePart = specificDateTime.toLocalDate(); // 提取日期部分
LocalTime timePart = specificDateTime.toLocalTime(); // 提取时间部分

boolean isAfter = specificDateTime.isAfter(LocalDateTime.now()); // 是否在当前日期和时间之后
boolean isBefore = specificDateTime.isBefore(LocalDateTime.now()); // 是否在当前日期和时间之前

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值