Java 8中的18个常用日期处理(收藏)

yizhihongxing

Java 8中的18个常用日期处理(收藏)

介绍

Java 8以前的日期处理方式比较麻烦,Java 8引入了新的日期时间API,也称为JSR-310,使对日期和时间的处理更加简便。本文将介绍Java 8中的18个常用日期处理方法。

1. 获取当天的日期

LocalDate today = LocalDate.now();  

使用LocalDate.now()方法获取当天的日期。

2. 获取当前时间

LocalTime time = LocalTime.now();  

使用LocalTime.now()方法获取当前时间。

3. 获取当前日期和时间

LocalDateTime now = LocalDateTime.now();  

使用LocalDateTime.now()方法获取当前日期和时间。

4. 获取某一天的日期

LocalDate date = LocalDate.of(2018, Month.OCTOBER, 11);  

使用LocalDate.of()方法获取某一天的日期。

5. 检查两个日期是否相等

LocalDate date1 = LocalDate.of(2018, Month.OCTOBER, 11);  
LocalDate date2 = LocalDate.of(2018, Month.OCTOBER, 11);  

if(date1.isEqual(date2)){
    System.out.println("两个日期相等");  
} else {
    System.out.println("两个日期不相等");    
}

使用isEqual()方法检查两个日期是否相等。

6. 检查日期是否是闰年

LocalDate date = LocalDate.of(2018, Month.OCTOBER, 11);

if(date.isLeapYear()){
    System.out.println("这一年是闰年");  
} else {
    System.out.println("这一年不是闰年");    
}

使用isLeapYear()方法检查日期是否是闰年。

7. 获取一周后的日期

LocalDate date = LocalDate.now();  
LocalDate nextWeek = date.plus(1, ChronoUnit.WEEKS);  

使用plus()方法获取一周后的日期。

8. 获取一年前的日期

LocalDate date = LocalDate.now();  
LocalDate previousYear = date.minus(1, ChronoUnit.YEARS);  

使用minus()方法获取一年前的日期。

9. 获取当前月的第一天

LocalDate date = YearMonth.now().atDay(1); 

使用atDay方法,获取当前月的第一天日期。

10. 获取当前月的最后一天

LocalDate date = YearMonth.now().atEndOfMonth();

使用atEndOfMonth()方法,获取当前月的最后一天日期。

11. 取得当前时间戳

Instant instant = Instant.now();  

使用Instant.now()方法获取当前时间戳。

12. 解析字符串为日期时间

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");  
LocalDateTime dateTime = LocalDateTime.parse("2018-10-11 10:20:30", formatter);  

使用DateTimeFormatter.ofPattern()方法设置日期时间格式,使用parse()方法解析字符串为日期时间。

13. 创建带有时区偏移量的日期时间

LocalDateTime dateTime = LocalDateTime.now();  
ZoneOffset offset = ZoneOffset.of("+01:00");  
OffsetDateTime offsetDateTime = OffsetDateTime.of(dateTime, offset);  

使用ZoneOffset.of()方法设置时区偏移量,使用OffsetDateTime.of()方法创建带有时区偏移量的日期时间。

14. 获取当前年月

YearMonth yearMonth = YearMonth.now();  

使用YearMonth.now()方法获取当前年月。

15. 检查日期是否在另一个日期之前

LocalDate now = LocalDate.now();  
LocalDate after = LocalDate.of(2019, Month.DECEMBER, 1);  

if(after.isAfter(now)){
    System.out.println("日期在当前日期之后");  
} else {
    System.out.println("日期在当前日期之前");    
}

使用isAfter()方法检查日期是否在另一个日期之后。

16. 获取今天是这个月的第几天

LocalDate date = LocalDate.now();  
int dayOfMonth = date.getDayOfMonth();  

使用getDayOfMonth()方法获取今天是这个月的第几天。

17. 获取今天是这一年的第几天

LocalDate date = LocalDate.now();  
int dayOfYear = date.getDayOfYear();  

使用getDayOfYear()方法获取今天是这一年的第几天。

18. 计算两个日期之间的天数

LocalDate before = LocalDate.of(2018, Month.OCTOBER, 5);  
LocalDate after = LocalDate.of(2018, Month.OCTOBER, 11);  
long daysBetween = ChronoUnit.DAYS.between(before, after);  

使用ChronoUnit.DAYS.between()方法计算两个日期之间的天数。

示例

下面是获取某一天的日期和解析字符串为日期时间的两个示例:

获取某一天的日期

LocalDate date = LocalDate.of(2019, Month.JANUARY, 20);  
System.out.println(date); 

输出:

2019-01-20

解析字符串为日期时间

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");  
LocalDateTime dateTime = LocalDateTime.parse("2019-01-20 10:20:30", formatter);  
System.out.println(dateTime); 

输出:

2019-01-20T10:20:30

结论

Java 8中的新日期时间API为日期时间处理提供了更多的便利性和灵活性。在实际开发中,我们可以使用这些方法对日期时间进行更加方便的处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 8中的18个常用日期处理(收藏) - Python技术站

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

相关文章

  • Java使用jni清屏功能的实现(只针对cmd)

    下面是关于Java使用JNI清屏功能的实现攻略。 1. 概述 Java中使用JNI可以调用C代码,因此我们可以使用C代码实现一些Java无法直接实现的功能。本文将介绍如何使用JNI实现Java清屏功能(只针对cmd)。 2. 具体实现 2.1 JNI代码 我们需要编写C代码来实现清屏操作。以下是一个简单的C代码示例,可以实现Windows下的清屏操作: #i…

    Java 2023年5月26日
    00
  • 一文带你搞懂Spring响应式编程

    一文带你搞懂Spring响应式编程 Spring 是一个流行的框架,它可以帮助我们构建各种类型的应用程序,包括 Web 应用程序、RESTful APIs、消息传递应用程序等,同时它也可以用于响应式编程。响应式编程是一种编程模型,可以在程序的不同部分之间传递异步数据流,使其更具可伸缩性和弹性。为了帮助大家更好地理解 Spring 响应式编程,我们提供了以下详…

    Java 2023年5月19日
    00
  • 全面了解java byte数组与文件读写

    全面了解java byte数组与文件读写攻略 本攻略将介绍如何使用Java中的byte数组与掌握Java中常用的文件读写操作,内容分为以下几个部分: byte数组 文件读取与写入 读取二进制文件 写入二进制文件 1. byte数组 byte数组是Java中最基本的二进制数据类型。在Java中,byte数组充当二进制数据的容器,通常用于在内存中存储二进制数据。…

    Java 2023年5月19日
    00
  • Java中关于内存泄漏出现的原因汇总及如何避免内存泄漏(超详细版)

    Java中关于内存泄漏出现的原因汇总及如何避免内存泄漏 什么是内存泄漏 内存泄漏指的是由于程序中的某些对象没有彻底释放所占用的内存空间,导致内存占用的不断增加,最终使程序被迫终止或崩溃。内存泄漏问题常常出现在长时间运行的程序中,一旦出现内存泄漏,不仅会影响程序的性能和稳定性,还会造成严重的资源浪费。 Java中内存泄漏出现的原因汇总 1. 软件设计问题 软件…

    Java 2023年5月27日
    00
  • 两种用空格分隔的java字符串的方式

    确实,Java中有两种使用空格分隔字符串的方法: 使用split方法: split方法允许您将字符串分裂成子字符串数组,方法如下: String[] strArray = "Hello World".split(" "); 这将创建一个字符串数组,其中包含两个元素: “Hello” 和 “World”。您可以使用for…

    Java 2023年5月27日
    00
  • php如何调用webservice应用介绍

    什么是Web Service Web Service是一种基于网络的技术,用于实现不同程序之间的互操作性。Web Service通过标准化的协议和格式,允许应用程序通过HTTP请求进行远程方法调用,以获取和传递数据和服务。PHP是一种流行的编程语言,具有广泛的支持和适合于Web Service调用。下面我们来详细了解如何在PHP中调用Web Service。…

    Java 2023年5月19日
    00
  • 使用java实现网络爬虫

    使用Java实现网络爬虫可以分为以下步骤: 1. 定义爬虫开始的入口URL 入口URL是爬虫开始爬取网页的地方,可以是指定的网页或是多个网页列表。定义入口URL的方式可以使用字符串形式,也可以使用类似Java URL类的URL对象。比如: String startUrl = "https://example.com"; URL url =…

    Java 2023年5月18日
    00
  • Spring Boot 单元测试JUnit的实践

    下面是关于“Spring Boot 单元测试JUnit的实践”的完整攻略: 一、为什么需要进行单元测试 单元测试是指对程序中的最小可测试单元进行检查和验证,确保每个单元都可以独立地并且正确地工作。而JUnit是Java中广泛使用的单元测试框架之一。 在实际开发中,进行单元测试可以帮助我们及时发现程序中的错误和bug,提高代码的健壮性和可靠性,同时也可以避免因…

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