【Java 8 新特性】Java LocalDate 转 Date

【Java 8 新特性】Java LocalDate 转 DateJavaLocalDate转Date1.使用LocalDate.atTime2.使用LocalDate.atStartOfDay3.使用LocalDateTime.of4.使用Timestamp.valueOf完整示例参考文献在这一页,我们将提供如何将java.time.LocalDate转换成java.util.Date。LocalDate表示一个格式为yyyy-MM-dd的日期,如2019-05-08。我们可以使用以下方法和构造函数来创建一个Date对象。1.Date.f

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在这一页,我们将提供如何将java.time.LocalDate转换成java.util.Date

LocalDate表示一个格式为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方法将该日期与给定的时间相结合,创建一个LocalDateTime

LocalDateTime.atZone将这个日期时间与一个时区结合起来,创建一个ZonedDateTime

ZonedDateTime.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

例1: LocalDate.atStartOfDay(zone)根据时区的规则,返回从该日期开始的最早有效时间的分区日期时间(time-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 

例2: LocalDate.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

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 

参考文献

【1】Java LocalDate
【2】Java DateTimeFormatter
【3】Java LocalDate to Date

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186120.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浮动广告代码

    浮动广告代码整个页面的代码如下:<%@PageLanguage=’vb’AutoEventWireup=’false’Codebehind=’floatadv.aspx.vb’Inherits=’

    2022年7月3日
    28
  • 计算机职称考试科目及内容,职称计算机考试科目

    计算机职称考试科目及内容,职称计算机考试科目全国职称计算机考试主要是测试参考人员在计算机与网络方面的基本应用能力,考试科目采取模块化设计,每一科目单独考试。1.中文WindowsXP操作系统  2.中文Windows98操作系统;  3.Word97中文字处理;  4.Word2003中文字处理  5.Excel97中文电子表格;  6.Excel2003中文电子表格  7.PowerPoint97中文演示文稿…

    2022年5月22日
    51
  • 单片机控制步进电机正反转c语言程序,单片机控制步进电机1步10步100步正反转…

    单片机控制步进电机正反转c语言程序,单片机控制步进电机1步10步100步正反转…原标题:单片机控制步进电机1步10步100步正反转一,程序设计方案的构想:1)的控制原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件.在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响.即给电机加一个信号,电机则转过一个步距角.这一线形关系的存在,加上步进电机只有周期性的误差而无积累误差等特点,使得在线速度,位置等控制领域用步进电机来控制变的…

    2022年5月8日
    95
  • python中的pop函数和append函数

    python中的pop函数和append函数pop()函数1、描述pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。语法pop()方法语法:list.pop(obj=list[-1])2、参数obj–可选参数,要移除列表元素的对象。3、返回值该方法返回从列表中移除的元素对象。4、实例以下实例展示了pop()函数的使用方法:#!/usr/bin/pythonaList=[123,’xyz’,’z

    2022年6月29日
    27
  • 使用 SQL Server 的 uniqueidentifier 字段类型[通俗易懂]

    使用 SQL Server 的 uniqueidentifier 字段类型[通俗易懂]SQLServer自2008版起引入了 uniqueidentifier 字段,它存储的是一个UUID,或者叫GUID,内部存储为16个字节。SQLServer可用两个函数来生成 uniqueidentifier,分别是 NEWID() 和 NEWSEQUENTIALID(),后者只能用作字段的默认值。Java也有一个UUID工具类 java.uti.UUID, U…

    2025年10月3日
    6
  • 乐乐音乐播放器(终)源代码+使用说明[通俗易懂]

    乐乐音乐播放器(终)源代码+使用说明

    2022年2月2日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号