Java基础-日期类的使用

本文介绍了Java中处理日期的类,如LocalDate,Date以及它们之间的转换方法。Java8引入的新日期时间API,如LocalDateTime和ZonedDateTime,提供了更方便的操作。同时,文章涵盖了日期的加减操作,以及Date类和Calendar类的相关方法。
摘要由CSDN通过智能技术生成

需求:返回一个半年前的日期实例

LocalDate now = LocalDate.now();
LocalDate sixMonthsAgo = now.minusMonths(6);
//这将返回一个半年前的日期实例

日期类型转换

在Java中,可以使用以下方法将LocalDate转换为Date:

LocalDate localDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
//这将返回一个包含当前日期的Date实例。

要将Date转换为LocalDate,可以使用以下方法:

Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//这将返回一个包含当前日期的LocalDate实例。

Java日期类

  • Date类:这是Java中最早的日期类之一。它表示一个特定的时间点,并且可以精确到毫秒级别。但是,它已经过时了,不推荐使用。
  • Calendar类:这是一个抽象类,用于处理日期和时间。它提供了许多方法来操作日期和时间,例如添加或减去天数、月份或年份。但是,它也有一些缺点,例如不够灵活和不够直观。
  • SimpleDateFormat类:这个类用于格式化和解析日期。它可以将日期格式化为指定的字符串,并将字符串解析为日期对象。
  • LocalDate类:这是Java 8中引入的新类之一。它表示一个本地日期,不包含时间信息。它是不可变的,并且提供了许多方法来处理日期,例如添加或减去天数、月份或年份。
  • LocalDateTime类:这个类表示一个本地日期和时间。它是不可变的,并且提供了许多方法来处理日期和时间。
  • ZonedDateTime类:这个类表示一个带有时区信息的日期和时间。它是不可变的,并且提供了许多方法来处理日期和时间。

Date类

Date类是Java中最早的日期类之一。它表示一个特定的时间点,并且可以精确到毫秒级别。以下是一些常用的方法:

  1. getTime()方法:返回一个long类型的值,表示自1970年1月1日00:00:00 GMT以来的毫秒数。
  2. toString()方法:将Date对象转换为字符串。
  3. before()和after()方法:比较两个日期的顺序。
  4. compareTo()方法:比较两个日期,并返回一个整数值,表示它们之间的差异。
  5. setTime()方法:设置Date对象的时间。
  6. clone()方法:创建并返回此对象的副本。
  7. equals()方法:比较两个对象是否相等。
  8. hashCode()方法:返回此对象的哈希码值。
  9. parse()方法:将字符串解析为Date对象。
  10. getYear()、getMonth()、getDate()、getHours()、getMinutes()和getSeconds()方法:获取Date对象中的年、月、日、小时、分钟和秒。

Calendar类

Calendar类是一个抽象类,用于处理日期和时间。它提供了许多方法来操作日期和时间,例如添加或减去天数、月份或年份。以下是一些常用的方法:

  1. getInstance()方法:返回一个Calendar对象,它表示当前日期和时间。
  2. get()方法:获取Calendar对象中的年、月、日、小时、分钟和秒。
  3. set()方法:设置Calendar对象中的年、月、日、小时、分钟和秒。
  4. add()方法:在Calendar对象中添加或减去指定的时间量。
  5. roll()方法:在Calendar对象中添加或减去指定的时间量,但不会影响到更大的时间单位。
  6. getTime()方法:将Calendar对象转换为Date对象。
  7. setTime()方法:设置Calendar对象的时间。
  8. before()和after()方法:比较两个日期的顺序。
  9. compareTo()方法:比较两个日期,并返回一个整数值,表示它们之间的差异。

SimpleDateFormat类

SimpleDateFormat类用于格式化和解析日期。它可以将日期格式化为指定的字符串,并将字符串解析为日期对象。以下是一些常用的方法:

  1. format()方法:将Date对象格式化为指定的字符串。
  2. parse()方法:将字符串解析为Date对象。
  3. setLenient()方法:设置解析日期时是否宽容。
  4. toPattern()方法:获取SimpleDateFormat对象使用的模式。
  5. applyPattern()方法:设置SimpleDateFormat对象使用的模式。
  6. setDateFormatSymbols()方法:设置SimpleDateFormat对象使用的DateFormatSymbols对象。
  7. getDateFormatSymbols()方法:获取SimpleDateFormat对象使用的DateFormatSymbols对象。
  8. clone()方法:创建并返回此对象的副本。

LocalDate类

LocalDate类是Java 8中引入的新类之一。它表示一个本地日期,不包含时间信息。它是不可变的,并且提供了许多方法来处理日期,例如添加或减去天数、月份或年份。以下是一些常用的方法:

  1. now()方法:返回当前日期。
  2. of()方法:根据指定的年、月、日创建一个LocalDate对象。
  3. getYear()、getMonth()和getDayOfMonth()方法:获取LocalDate对象中的年、月和日。
  4. plusDays()、plusMonths()和plusYears()方法:在LocalDate对象中添加指定的天数、月数或年数。
  5. minusDays()、minusMonths()和minusYears()方法:在LocalDate对象中减去指定的天数、月数或年数。
  6. withDayOfMonth()、withMonth()和withYear()方法:设置LocalDate对象中的日、月或年。
  7. isBefore()和isAfter()方法:比较两个日期的顺序。
  8. isEqual()方法:比较两个日期是否相等。
  9. compareTo()方法:比较两个日期,并返回一个整数值,表示它们之间的差异。

LocalDateTime类

LocalDateTime类是Java 8中引入的新类之一。它表示一个本地日期和时间,不包含时区信息。它是不可变的,并且提供了许多方法来处理日期和时间,例如添加或减去天数、月份或年份。以下是一些常用的方法:

  1. now()方法:返回当前日期和时间。
  2. of()方法:根据指定的年、月、日、小时和分钟创建一个LocalDateTime对象。
  3. getYear()、getMonth()、getDayOfMonth()、getHour()、getMinute()和getSecond()方法:获取LocalDateTime对象中的年、月、日、小时、分钟和秒。
  4. plusDays()、plusMonths()、plusYears()、plusHours()、plusMinutes()和plusSeconds()方法:在LocalDateTime对象中添加指定的天数、月数、年数、小时数、分钟数或秒数。
  5. minusDays()、minusMonths()、minusYears()、minusHours()、minusMinutes()和minusSeconds()方法:在LocalDateTime对象中减去指定的天数、月数、年数、小时数、分钟数或秒数。
  6. withDayOfMonth()、withMonth()、withYear()、withHour()、withMinute()和withSecond()方法:设置LocalDateTime对象中的日、月、年、小时、分钟或秒。
  7. isBefore()和isAfter()方法:比较两个日期和时间的顺序。
  8. isEqual()方法:比较两个日期和时间是否相等。
  9. compareTo()方法:比较两个日期和时间,并返回一个整数值,表示它们之间的差异。

ZonedDateTime类

ZonedDateTime类是Java 8中引入的新类之一。它表示一个带有时区信息的本地日期和时间。它是不可变的,并且提供了许多方法来处理日期和时间,例如添加或减去天数、月份或年份。以下是一些常用的方法:

  1. now()方法:返回当前日期和时间。
  2. of()方法:根据指定的年、月、日、小时、分钟、秒和时区创建一个ZonedDateTime对象。
  3. getYear()、getMonth()、getDayOfMonth()、getHour()、getMinute()、getSecond()和getZone()方法:获取ZonedDateTime对象中的年、月、日、小时、分钟、秒和时区。
  4. plusDays()、plusMonths()、plusYears()、plusHours()、plusMinutes()和plusSeconds()方法:在ZonedDateTime对象中添加指定的天数、月数、年数、小时数、分钟数或秒数。
  5. minusDays()、minusMonths()、minusYears()、minusHours()、minusMinutes()和minusSeconds()方法:在ZonedDateTime对象中减去指定的天数、月数、年数、小时数、分钟数或秒数。
  6. withDayOfMonth()、withMonth()、withYear()、withHour()、withMinute()和withSecond()方法:设置ZonedDateTime对象中的日、月、年、小时、分钟或秒。
  7. isBefore()和isAfter()方法:比较两个日期和时间的顺序。
  8. isEqual()方法:比较两个日期和时间是否相等。
  9. compareTo()方法:比较两个日期和时间,并返回一个整数值,表示它们之间的差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白郴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值