Date和LocalDate

1. Date类:

    • "Date"类是Java早期版本中用于表示日期和时间的类。
    • 它位于java.util包中。
    • "Date"对象表示一个特定的日期和时间,精确到毫秒级别。
    • "Date"类的方法提供了对日期和时间的基本操作,如获取、设置、比较等。
    • 但是,"Date"类在设计上存在一些问题,因此在Java 8及更高版本中,推荐使用新的日期和时间API。

2. LocalDate类:

    • "LocalDate"类是Java 8及更高版本中引入的日期类。
    • 它位于java.time包中。
    • "LocalDate"对象表示一个日期,不包含时间和时区信息。
    • "LocalDate"类提供了丰富的方法来处理日期,如获取年、月、日,计算日期差异,格式化日期等。
    • "LocalDate"类是不可变的,意味着一旦创建了一个"LocalDate"对象,就不能修改它的值。

试例:

import java.util.Date;
import java.time.LocalDate;

// 创建Date对象(Java早期版本)
Date date = new Date();

// 创建LocalDate对象(Java 8及更高版本)
LocalDate localDate = LocalDate.now();

3. 使用多种方法进行"Date"和"LocalDate"之间的相互转换。以下是几种常见的方法:

3.1.1. 使用旧的"Date"类和新的"LocalDate"类之间的转换方法:
    • 将"Date"转换为"LocalDate":
Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    • 将"LocalDate"转换为"Date":
LocalDate localDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
3.1.2. 使用"SimpleDateFormat"类进行转换:
    • 将"Date"转换为"LocalDate":
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(sdf.format(date));
    • 将"LocalDate"转换为"Date":
LocalDate localDate = LocalDate.now();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(localDate.toString());
3.1.3. 使用新的日期时间API中的方法进行转换:
    • 将"Date"转换为"LocalDate":
Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    • 将"LocalDate"转换为"Date":
LocalDate localDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
3.1.4. 使用"Instant"类进行转换:
    • 将"Date"转换为"LocalDate":
Date date = new Date();
Instant instant = date.toInstant();
LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
    • 将"LocalDate"转换为"Date":
LocalDate localDate = LocalDate.now();
Instant instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
3.1.5. 使用"Calendar"类进行转换:
    • 将"Date"转换为"LocalDate":
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
LocalDate localDate = LocalDate.of(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH));
    • 将"LocalDate"转换为"Date":
LocalDate localDate = LocalDate.now();
Calendar calendar = Calendar.getInstance();
calendar.set(localDate.getYear(), localDate.getMonthValue() - 1, localDate.getDayOfMonth());
Date date = calendar.getTime();
  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值