gpt4 book ai didi

Java如何将LocalDate转换为Date

转载 作者:知者 更新时间:2024-03-12 08:01:07 27 4
gpt4 key购买 nike

在本文中,我们将提供如何将 java.time.LocalDate 转换为 java.util.DateLocalDate 表示格式为 yyyy-MM-dd 的日期,例如 2019-05-08。我们可以使用以下方法和构造函数来创建一个 Date 对象。
1。 Date.from(instant):从 Instant 对象中获取 Date 的实例。我们可以使用 ZonedDateTimeTimestamp 来获取 InstantZonedDateTimeTimestamp 可以使用 LocalDateTime 获得,而 LocalDateTime 可以使用 LocalDate 获得。

2。 Date(long date):创建 Date 对象并将其初始化为表示指定毫秒数的构造函数。我们可以使用 Timestamp.getTime() 来获取以毫秒为单位的时间。

1. 使用 LocalDate.atTime

LocalDate.atTime 方法将此日期与给定时间结合起来创建一个 LocalDateTimeLocalDateTime.atZone 将此日期时间与时区组合以创建 ZonedDateTimeZonedDateTime.toInstant 将此日期时间转换为 Instant。现在我们将这个 Instant 实例传递给 Date.from 方法,该方法将返回一个 java.util.Date 实例。
例子

LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = localDate.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019

2. 使用 LocalDate.atStartOfDay

Example-1LocalDate.atStartOfDay(zone) 根据时区中的规则从该日期返回最早有效时间的分区日期时间。

LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019

示例 2LocalDate.atStartOfDay() 将此日期与午夜时间相结合,以在此日期开始时创建一个 LocalDateTime

LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019

3. 使用 LocalDateTime.of

LocalDateTime.of 从日期和时间获取 LocalDateTime 的实例。
例子

LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = LocalDateTime.of(localDate, LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019

4. 使用 Timestamp.valueOf

Timestamp.valueOf(dateTime)LocalDateTime 对象中获取 Timestamp 的实例。

示例 1:使用 LocalDate.atTime 方法实例化 LocalDateTime

LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT)).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019

示例 2:使用 LocalDateTime.of 方法实例化 LocalDateTime

LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = Timestamp.valueOf(LocalDateTime.of(localDate, LocalTime.MIDNIGHT)).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019

示例 3:使用 Timestamp.getTime() 方法创建 Date

LocalDate localDate = LocalDate.parse("2019-05-08");
Timestamp timestamp = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT));
Date date = new Date(timestamp.getTime());
System.out.println(date); //Wed May 08 00:00:00 IST 2019

完整示例

LocalDateToDate.java

package com.concretepage;
import java.sql.Timestamp;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.Date;
public class LocalDateToDate {
  public static void main(String[] args) {
	LocalDate localDate = LocalDate.parse("2019-05-08");

	Instant instant = localDate.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
	Date date = Date.from(instant);
	System.out.println(date);

	instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
	date = Date.from(instant);
	System.out.println(date);

	instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
	date = Date.from(instant);
	System.out.println(date);

	instant = LocalDateTime.of(localDate, LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
	date = Date.from(instant);
	System.out.println(date);

	instant = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT)).toInstant();
	date = Date.from(instant);
	System.out.println(date);

	instant = Timestamp.valueOf(LocalDateTime.of(localDate, LocalTime.MIDNIGHT)).toInstant();
	date = Date.from(instant);
	System.out.println(date);

	Timestamp timestamp = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT));
	date = new Date(timestamp.getTime());
	System.out.println(date);

  }
}

输出

Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com