java时间日期使用与查询代码详解

Java时间日期使用与查询代码详解

介绍

在Java中,日期和时间是一个常见的需求。Java为我们提供了用于处理日期和时间的多个类和方法。本文将深入介绍Java的日期时间相关的类和方法,并提供使用示例和代码详解。

本文涉及以下类:

  • java.time.LocalDate - 表示只用日期,不包含时间的类。
  • java.time.LocalTime - 表示只用时间,不包含日期的类。
  • java.time.LocalDateTime - 表示日期和时间。
  • java.time.Period - 用来表示时间段信息,可以用于计算日期之间的差值。
  • java.time.Duration - 用来表示时间段信息,可以用于计算两个时间之间的差值。
  • java.time.format.DateTimeFormatter - 用于将日期时间格式化为字符串,或将字符串解析为日期时间。

LocalDate

LocalDate类表示一个不包含时间信息的日期,它只包含年、月、日信息。下面是创建LocalDate对象的示例代码:

// 当前时间
LocalDate today = LocalDate.now(); 

// 根据参数创建一个日期
LocalDate dateOfBirth = LocalDate.of(1990, 1, 10);

对于一个LocalDate对象,我们可以获取它的年、月、日等信息。下面是获取年月日的示例代码:

int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();

除此之外,还可以进行日期的计算,比如加上或减去天数、月数、年数。下面是进行日期计算的示例代码:

LocalDate newDate = today.plusDays(1);
LocalDate newDate2 = today.plusMonths(1);
LocalDate newDate3 = today.plusYears(1);

LocalDate newDate4 = today.minusDays(1);
LocalDate newDate5 = today.minusMonths(1);
LocalDate newDate6 = today.minusYears(1);

LocalTime

LocalTime类表示一个不包含日期信息的时间,它只包含小时、分钟、秒、毫秒信息。下面是创建LocalTime对象的示例代码:

// 当前时间
LocalTime now = LocalTime.now(); 

// 根据参数创建一个时间
LocalTime time = LocalTime.of(15, 59, 50);

对于一个LocalTime对象,我们可以获取它的小时、分钟、秒等信息。下面是获取小时、分钟、秒的示例代码:

int hour = now.getHour();
int minute = now.getMinute();
int second = now.getSecond();

除此之外,还可以进行时间的计算,比如加上或减去小时数、分钟数、秒数。下面是进行时间计算的示例代码:

LocalTime newTime = now.plusHours(1);
LocalTime newTime2 = now.plusMinutes(1);
LocalTime newTime3 = now.plusSeconds(1);

LocalTime newTime4 = now.minusHours(1);
LocalTime newTime5 = now.minusMinutes(1);
LocalTime newTime6 = now.minusSeconds(1);

LocalDateTime

LocalDateTime类表示一个包含日期和时间信息的对象。下面是创建LocalDateTime对象的示例代码:

// 当前时间
LocalDateTime now = LocalDateTime.now(); 

// 根据参数创建一个日期和时间
LocalDateTime dateTime = LocalDateTime.of(1990, 1, 10, 12, 30, 0);

获取年、月、日、小时、分钟、秒的方法与LocalDateLocalTime类似。

Period

Period类表示日期之间的差值。下面是创建Period对象的示例代码:

// 创建两个日期
LocalDate date1 = LocalDate.of(1990, 1, 10);
LocalDate date2 = LocalDate.of(2010, 4, 15);

// 计算两个日期之间的差值
Period period = Period.between(date1, date2);

Period对象有多个方法可以获取它表示的差值,比如获取年数、月数、天数。下面是获取Period对象表示的差值的示例代码:

int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();

Duration

Duration类表示两个时间之间的差值。下面是创建Duration对象的示例代码:

// 创建两个时间
LocalTime time1 = LocalTime.of(15, 30, 0);
LocalTime time2 = LocalTime.of(16, 40, 0);

// 计算两个时间之间的差值
Duration duration = Duration.between(time1, time2);

Duration对象有多个方法可以获取它表示的差值,比如获取小时数、分钟数、秒数。下面是获取Duration对象表示的差值的示例代码:

long hours = duration.toHours();
long minutes = duration.toMinutes();
long seconds = duration.getSeconds();

DateTimeFormatter

DateTimeFormatter类是用于将日期时间格式化为字符串,或将字符串解析为日期时间的类。下面是将LocalDateTime格式化为字符串的示例代码:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.of(1990, 1, 10, 12, 30, 0);
String formattedDateTime = dateTime.format(formatter);

将字符串解析为LocalDateTime的示例代码:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateTimeString = "1990-01-10 12:30:00";
LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter);

示例

示例一

下面是一个简单的示例,计算从当前日期到指定日期之间的天数:

LocalDate today = LocalDate.now(); 

// 指定一个日期
LocalDate date2 = LocalDate.of(2022, Month.JANUARY, 1);

// 计算差值
Period period = Period.between(today, date2);

// 获取天数
int days = period.getDays();

System.out.println("天数:" + days);

输出结果为:

天数:511

示例二

下面是一个示例,将一个日期时间字符串解析为LocalDateTime对象,并将其格式化为另一个字符串:

String dateTimeString = "2022-01-01T01:23:45";
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");

LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter1);
String formattedDateTime = dateTime.format(formatter2);

System.out.println(formattedDateTime);

输出结果为:

2022年01月01日 01:23:45

总结

在Java中,有多个类和方法可以用来处理日期和时间信息。本文介绍了LocalDateLocalTimeLocalDateTimePeriodDurationDateTimeFormatter等对象和类,提供了使用示例和代码详解,帮助读者更好地掌握Java时间日期相关的知识和技巧。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java时间日期使用与查询代码详解 - Python技术站

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

相关文章

  • Java中的常用输入输出语句的操作代码

    接下来我将为你详细讲解Java中常用的输入输出语句操作代码。 标准输入输出 Java中有两个标准的输入输出流:System.in和System.out。 输出语句 输出语句用于将数据输出到控制台或其他设备。 Java中使用System.out.println()方法来将数据输出,并自动在结尾处添加一个换行符。 例如,以下代码输出“Hello World!”:…

    Java 2023年5月26日
    00
  • Java 编程中十个处理异常的建议

    Java 编程中十个处理异常的建议 对于 Java 程序员来说,异常处理是一项必不可少的技能。如何合理地处理异常,提高代码的健壮性和可维护性,是每个程序员都应该重视的问题。这里提供十个处理异常的建议,帮助大家更好地应对各种异常情况。 1. 避免捕获过于宽泛的异常 Java 中存在许多种异常类型,如 NullPointerException、ArrayInde…

    Java 2023年5月27日
    00
  • Springmvc 4.x利用@ResponseBody返回Json数据的方法

    以下是关于“SpringMVC 4.x利用@ResponseBody返回JSON数据的方法”的完整攻略,其中包含两个示例。 SpringMVC 4.x利用@ResponseBody返回JSON数据的方法 在SpringMVC 4.x中,我们可以使用@ResponseBody注解将Java对象转换为JSON格式的数据,并将其返回给客户端。本文将介绍两个示例,包…

    Java 2023年5月16日
    00
  • 详解Java中String JSONObject JSONArray List<实体类>转换

    下面是详解Java中String、JSONObject、JSONArray以及List<实体类>之间的转换攻略。 将String转换为JSONObject 在Java中,可以通过JSONObject类将一个字符串转换为JSON对象,具体操作如下: String jsonString = "{\"name\":\&qu…

    Java 2023年5月26日
    00
  • Java面向对象编程之类的继承详解

    Java面向对象编程之类的继承详解 什么是继承? 继承是一种面向对象编程的重要特性,它可以让一个类(子类)拥有另一个类(父类)的所有方法和属性。 在Java中,使用关键字extends来实现继承。 继承的语法 public class ChildClass extends ParentClass { // 子类的内容 } 在以上语法中,我们定义了一个名为Ch…

    Java 2023年5月26日
    00
  • 详解Java的继承

    详解Java的继承 Java中的继承是一种面向对象编程中非常重要的概念,它可以让子类拥有父类的属性和方法,同时也可以通过继承来实现代码的复用和继承树的建立。本文将详解Java的继承,包括继承的语法、继承的作用和细节问题,通过两个实例来帮助理解。 继承的语法 在Java中,使用关键字 extends 来创建子类并继承父类。例如: class Child ext…

    Java 2023年5月26日
    00
  • Java零基础精通方法篇

    Java零基础精通方法篇攻略 Java作为一门在现代编程界十分流行的语言,其学习曲线也是比较陡峭的。学习方法很重要,下面是一些针对Java零基础学习的方法。 1. 确定学习路线 Java语言许多知识点非常广泛,在学习Java之前,了解和确定自己所要学习的路线非常重要。建议先学习Java基本语法,然后跟随Java的应用功能,例如网络编程、GUI编程、并发等。同…

    Java 2023年5月23日
    00
  • java — Stream流

    注意:Stream和IO流(InputStream/OutputStream)没有任何关系,请暂时忘记对传统IO流的固有印象 传统集合的多步遍历代码 几乎所有的集合(如Collection接口或Map接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如: public clas…

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