Java 日期转换详解及实例代码

yizhihongxing

Java 日期转换详解及实例代码

在Java中,日期转换经常是很常见的需求,它涉及到将字符串解析为日期对象、将日期对象格式化为字符串等操作。下面将详细介绍Java日期转换的相关知识和实例代码。

日期格式化与解析

Date与String互相转换

将Date对象转换为字符串

Java提供了SimpleDateFormat class用于将Date对象转换为指定格式的字符串。示例代码如下:

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestDate {

    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strDate = formatter.format(date);
        System.out.println("Date转换为String:" + strDate);
    }
}

上面代码中,SimpleDateFormat用于定义日期格式,format()方法将Date对象转换为指定格式的字符串。执行结果如下:

Date转换为String:2022-05-18 10:17:57

将字符串转换为Date对象

Java提供了SimpleDateFormat class用于将指定格式的字符串转换为Date对象。示例代码如下:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestDate {

    public static void main(String[] args) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strDate = "2022-05-18 10:17:57";
        try {
            Date date = formatter.parse(strDate);
            System.out.println("String转换为Date:" + date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

上面代码中,formatter定义了日期格式,parse()方法将字符串转换为Date对象。注意,parse()方法可能会抛出ParseException异常,需要进行异常处理。执行结果如下:

String转换为Date:Wed May 18 10:17:57 CST 2022

LocalDateTime与String互相转换

Java 8引入了新的日期时间API,其中LocalDateTime代表了不带时区的日期时间,它提供了格式化和解析日期时间的方法。示例代码如下:

将LocalDateTime对象转换为字符串

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class TestLocalDateTime {

    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        String strDate = dateTime.format(formatter);
        System.out.println("LocalDateTime转换为String:" + strDate);
    }
}

上面代码中,DateTimeFormatter用于定义日期格式,format()方法将LocalDateTime对象转换为指定格式的字符串。执行结果如下:

LocalDateTime转换为String:2022/05/18 10:17:57

将字符串转换为LocalDateTime对象

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class TestLocalDateTime {

    public static void main(String[] args) {
        String strDate = "2022/05/18 10:17:57";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        LocalDateTime dateTime = LocalDateTime.parse(strDate, formatter);
        System.out.println("String转换为LocalDateTime:" + dateTime);
    }
}

上面代码中,parse()方法将字符串转换为LocalDateTime对象。执行结果如下:

String转换为LocalDateTime:2022-05-18T10:17:57

时区转换

Java中自带的Date和Calendar类并不支持时区的转换,需要使用第三方库或者Java 8的新API。这里介绍使用Java 8的新API对时区进行转换。

LocalDateTime与ZonedDateTime互相转换

在Java 8中,LocalDateTime代表了不带时区的日期时间,ZonedDateTime则代表了带时区的日期时间。下面介绍如何将它们互相转换。

将LocalDateTime转换为ZonedDateTime

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class TestZone {

    public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");
        ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, zoneId);
        System.out.println("LocalDateTime转换为ZonedDateTime:" + zonedDateTime);
    }
}

上面代码中,ZoneId用于定义时区,ZonedDateTimeLocalDateTime对象和时区转换为带时区的日期时间。执行结果如下:

LocalDateTime转换为ZonedDateTime:2022-05-18T10:17:57.407+08:00[Asia/Shanghai]

将ZonedDateTime转换为LocalDateTime

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class TestZone {

    public static void main(String[] args) {
        ZonedDateTime zonedDateTime = ZonedDateTime.now();
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");
        LocalDateTime localDateTime = zonedDateTime.withZoneSameInstant(zoneId).toLocalDateTime();
        System.out.println("ZonedDateTime转换为LocalDateTime:" + localDateTime);
    }
}

上面代码中,withZoneSameInstant()方法将时区转换为指定时区,并返回相同时间点的ZonedDateTime对象,然后通过toLocalDateTime()方法将其转换为LocalDateTime对象。执行结果如下:

ZonedDateTime转换为LocalDateTime:2022-05-18T10:17:57.510

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 日期转换详解及实例代码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java+swing+Mysql实现商品销售管理系统

    让我来讲解“Java+swing+Mysql实现商品销售管理系统”的完整攻略。这个系统主要涉及到 Java 编程语言、swing GUI 工具包以及 Mysql 数据库的应用。下面是具体的步骤: 步骤一:环境搭建与项目创建 在搭建环境之前需要安装 Java JDK、Eclipse/IDEA 编辑器、Mysql 数据库工具等软件。具体过程可以参考网上教程进行安…

    Java 2023年5月19日
    00
  • 一文搞懂Spring循环依赖的原理

    一文搞懂Spring循环依赖的原理 Spring容器中的循环依赖是指两个或多个Bean彼此之间相互依赖。这种情况下,容器就无法完成Bean实例化,从而导致应用程序无法正常启动。因此,解决循环依赖问题是Spring框架中一个非常重要的问题。 循环依赖的概念 循环依赖是指两个或多个Bean之间出现了相互依赖的情况。例如:Bean1依赖于Bean2,而Bean2又…

    Java 2023年5月19日
    00
  • Java运算符的知识点与代码汇总

    Java运算符的知识点与代码汇总 1. 概述 Java运算符是Java语言中用于完成各种算数、关系和逻辑运算的符号。在Java程序中,运算符经常被用于各种运算表达式中,通过运算符可以组合复杂的逻辑表达式,完成各种数据计算和判断。本文将详细讲解Java运算符的知识点和一些常见的使用示例。 2. 分类 Java运算符可分为以下几类: 算术运算符 赋值运算符 自增…

    Java 2023年5月30日
    00
  • JSP 点击链接后下载文件(相当于右键另存)功能

    要实现JSP点击链接后下载文件的功能,需要以下几个步骤: 确定下载文件的路径:首先需要确定要下载的文件所在的路径,这个路径可以是本地服务器上的路径,也可以是远程服务器上的路径。 编写JSP页面:在JSP页面中实现下载文件的功能,需要将下载文件的路径传到后台处理页面,然后在后台处理页面中将文件读取到输出流中并发送给客户端。 以下是一个简单的示例说明: 示例1:…

    Java 2023年6月15日
    00
  • 亲测有效解决Tomcat启动提示错误:At least one JAR was scanned for TLDs yet contained no TLDs

    首先,这个错误信息提示我们Tomcat扫描到了至少一个JAR文件,但是该JAR文件中没有包含任何的TLD文件。在这种情况下,Tomcat就无法识别出该JAR文件中的标签库,最终导致启动失败。 下面是解决这个问题的攻略步骤: 对于直接使用Tomcat的用户 可以在启动Tomcat之前,在Tomcat根目录下的conf目录找到Catalina/localhost…

    Java 2023年6月2日
    00
  • SpringBoot Data JPA 关联表查询的方法

    当我们需要在开发过程中对多个表进行查询时,可以使用Spring Boot Data JPA中提供的关联查询方法,通过设置实体类之间的关系来方便地进行多表查询。下面是关于SpringBoot Data JPA关联表查询的详细攻略。 1. 设置实体类之间的关系 为了进行多表查询,我们需要设置实体类之间的关系。假设我们有两个实体类:Order和User,其中Ord…

    Java 2023年5月20日
    00
  • 详解Java的JDBC API的存储过程与SQL转义语法的使用

    详解Java的JDBC API的存储过程与SQL转义语法的使用 什么是存储过程? 存储过程是一种预定义在数据库中的过程,通过一条语句的执行,可以调用存储过程来完成一系列操作。存储过程通常用于执行重复性的任务。 在Java中,我们可以使用JDBC API来访问数据库,并执行存储过程。 JDBC API中调用存储过程的方法 在Java中,我们可以使用JDBC的C…

    Java 2023年5月20日
    00
  • Spring5+SpringMvc+Hibernate5整合的实现

    Spring5+SpringMVC+Hibernate5整合的实现 Spring5+SpringMVC+Hibernate5整合是一种常见的Java Web开发框架,它可以帮助我们快速开发Web应用程序。本文将详细讲解Spring5+SpringMVC+Hibernate5整合的实现,并提供两个示例说明。 实现步骤 步骤一:添加依赖 首先,我们需要在项目中添…

    Java 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部