Java日期时间以及日期相互转换

下面是关于Java日期时间以及日期相互转换的完整攻略:

Java日期时间

Java提供了许多有关日期和时间的类,其中一些是java.util.Date,java.util.Calendar和java.time.LocalDate和java.time.LocalDateTime。 在本文中,我们将学习如何使用这些类来处理日期和时间。

Java.util.Date

java.util.Date类是Java API中表示日期和时间的基础类。该类的大多数方法都已弃用。最好使用java.time包中的类,如我们将在下面讨论的。

我们可以创建一个包含当前日期和时间的Date对象,如下所示:

Date currentDate = new Date();
System.out.println(currentDate);

Java.util.Calendar

java.util.Calendar类提供了与日历相关的许多方法。通过Calendar.getInstance()方法获取一个Calendar对象,然后就可以通过该对象获取当前时间的各种信息,如下所示:

Calendar current = Calendar.getInstance();
System.out.println(current.get(Calendar.YEAR));
System.out.println(current.get(Calendar.MONTH) + 1);
System.out.println(current.get(Calendar.DAY_OF_MONTH));
System.out.println(current.get(Calendar.HOUR));
System.out.println(current.get(Calendar.MINUTE));
System.out.println(current.get(Calendar.SECOND));

Java.time.LocalDate

Java 8引入了java.time包,它包含了一组新的日期/时间API,用于取代旧的java.util.Date,java.util.Calendar和java.text.SimpleDateFormat类。java.time.LocalDate类表示一个不带时间的日期,例如 2021-06-15。我们可以使用该类的静态方法now()获取当前日期,如下所示:

LocalDate currentDate = LocalDate.now();
System.out.println(currentDate);

我们还可以使用该类的of()和parse()方法来创建日期对象。of()方法按指定的年,月,日创建一个日期对象。parse()方法通过解析字符串来创建日期对象。示例如下:

LocalDate date1 = LocalDate.of(2021, 6, 15);
System.out.println(date1);

LocalDate date2 = LocalDate.parse("2021-06-15");
System.out.println(date2);

Java.time.LocalDateTime

java.time.LocalDateTime类表示日期和时间,例如 2021-06-15T12:30:45。我们可以使用该类的静态方法now()获取当前日期时间,如下所示:

LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println(currentDateTime);

我们还可以使用该类的of()和parse()方法创建日期时间对象。示例如下:

LocalDateTime dateTime1 = LocalDateTime.of(2021, 6, 15, 12, 30, 45);
System.out.println(dateTime1);

LocalDateTime dateTime2 = LocalDateTime.parse("2021-06-15T12:30:45");
System.out.println(dateTime2);

日期相互转换

Java提供了一些方法来进行日期之间的相互转换。下面分别介绍日期和字符串之间的转换以及日期类型之间的转换。

日期和字符串之间的转换

Java提供了SimpleDateFormat类,可用于将日期格式化为字符串或将字符串解析为日期。示例如下:

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(date);
System.out.println(strDate);

String str = "2021-06-15 12:30:45";
Date date1 = sdf.parse(str);
System.out.println(date1);

日期类型之间的转换

Java 8的java.time包提供了一些方法,可以将日期/时间对象之间进行转换。示例如下:

LocalDate转Date

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

LocalDateTime转Date

LocalDateTime localDateTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
Date date1 = Date.from(localDateTime.atZone(zoneId).toInstant());
System.out.println(date1);

Date转LocalDate

Date date2 = new Date();
LocalDate localDate1 = date2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(localDate1);

Date转LocalDateTime

Date date3 = new Date();
LocalDateTime localDateTime1 = LocalDateTime.ofInstant(date3.toInstant(), ZoneId.systemDefault());
System.out.println(localDateTime1);

至此,Java日期时间以及日期相互转换的完整攻略就讲解完毕了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日期时间以及日期相互转换 - Python技术站

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

相关文章

  • Java 轻松掌握字符缓冲流的使用

    Java 轻松掌握字符缓冲流的使用 什么是字符缓冲流? 字符缓冲流是一种输入/输出流(也叫二进制流),它是基于字符的流,因此与字节流相比,字符缓冲流通常更容易使用和处理。它是对基本的字符输入/输出流的增强(例如 FileReader 和 FileWriter 类),它使用内部缓存区来提高读取和写入数据的性能。 如何使用字符缓冲流 步骤一:创建字符缓冲输入流 …

    Java 2023年5月27日
    00
  • SpringBoot SpringSecurity JWT实现系统安全策略详解

    SpringBoot SpringSecurity JWT实现系统安全策略详解 系统安全策略概述 在今天的互联网时代,安全性已经成为一个至关重要的问题,尤其是对于Web应用程序而言。SpringSecurity是Spring框架下的一个强大的安全框架,可以实现基于Web的安全保护。JWT是一种轻量级的身份认证和授权方案,可以帮助我们实现在分布式应用程序中的安…

    Java 2023年5月20日
    00
  • java图论弗洛伊德和迪杰斯特拉算法解决最短路径问题

    Java图论:弗洛伊德和迪杰斯特拉算法解决最短路径问题 在图论中,最短路径问题是指在一张图中,从起始点到终点的所有路径中,具有最小路径权值的路径。本文将介绍Java语言中如何使用弗洛伊德和迪杰斯特拉算法解决最短路径问题。 弗洛伊德算法 弗洛伊德算法(Floyd算法)是一种通过动态规划解决所有最短路径的算法。该算法的时间复杂度为O(n^3),因此对于大型图而言…

    Java 2023年5月19日
    00
  • InputStreamReader和BufferedReader用法及实例讲解

    InputStreamReader和BufferedReader用法及实例讲解 在Java中,读取文件或者网络数据时,我们通常会用到InputStreamReader和BufferedReader这两个类。InputStreamReader是将字节流转换成字符流,而BufferedReader则是为了加速读取字符流而存在的。下面我们将逐步讲解这两个类的用法及…

    Java 2023年5月20日
    00
  • Java反射的定义和用法详解

    Java反射的定义和用法详解 什么是Java反射? Java反射是指在程序运行期间,可以动态地获取和操作Java类的信息。具体而言,Java反射可以让我们在运行时获取类的属性和方法等信息,并且可以用来创建新的对象、调用对象的方法、获取和设置对象的字段等操作。 Java反射的用法 让我们来看一些简单的Java反射用法示例: 示例一:创建新对象 下面是一个创建新…

    Java 2023年5月26日
    00
  • SpringBoot一个非常蛋疼的无法启动的问题解决

    在使用Spring Boot开发应用程序时,有时会遇到无法启动的问题。以下是解决Spring Boot无法启动的一些常见问题和解决方法: 1. 端口被占用 问题描述 在启动Spring Boot应用程序时,可能会遇到以下错误: java.net.BindException: Address already in use: bind 解决方法 这个错误通常是由…

    Java 2023年5月14日
    00
  • 什么是Java诊断工具?

    Java诊断工具可用于检测、分析和调试Java应用程序的性能和瓶颈。它们被广泛用于Java开发和维护中,以发现问题并提高系统性能。下面是Java诊断工具的详细使用攻略,包括两个示例说明: 什么是Java诊断工具? Java诊断工具是一组开发工具,可用于调试和优化Java应用程序的性能。它们可用于收集各种数据和指标,并提供有关应用程序的详细性能信息。Java诊…

    Java 2023年5月11日
    00
  • Java虚拟机GC日志分析

    下面是关于Java虚拟机GC日志分析的完整攻略: 什么是Java虚拟机GC日志 Java虚拟机的内存管理采用了分代垃圾收集的方式,GC日志是Java虚拟机在垃圾回收时所产生的日志,它里面包含了垃圾回收的很多相关信息,如垃圾回收的原因、结果、执行时间以及内存状态等。 获取GC日志 在使用Java虚拟机时,默认情况下并不会产生GC日志,需要手动开启才可以,一般有…

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