服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java8日期工具类封装的实战记录

java8日期工具类封装的实战记录

2022-01-07 13:02苏世_ Java教程

java time包中的是类是不可变且线程安全的,新的时间及日期API位于java.time中,下面这篇文章主要给大家介绍了关于java8日期工具类封装的相关资料,需要的朋友可以参考下

前言

java现在应该是更新到16了,想想我当年刚参加工作的时候。普遍还都是java7,那时候没有SpringBoot,没有springCloud,没有我的那个她 哈哈,扯的有点远了,拉回正题

今天我们聊聊java的日期类的一些骚操作

在Java 8中如何处理日期和时间

Java 8 中的 LocalDate 用于表示当天日期。和java.util.Date不同,它只有日期,不包含时间。当你仅需要表示日期时就用这个类。

?
1
2
3
4
5
LocalDate today = LocalDate.now();
System.out.println("Today's Local date : " + today);
 
 
Today's Local date : 2021-08-27

那接下来比如我们获取具体的年月日

?
1
2
3
4
5
6
7
LocalDate today = LocalDate.now();
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();
System.out.printf("Year="+year + "month =" +month + "day ="+day);
 
Year=2021month = 8day=27

那肯定有小伙伴问了,那比如我们平时工作过程中怎么指定格式化日期呢?

在上面第一个例子里,我们通过静态工厂方法now()非常容易地创建了当天日期,你还可以调用另一个有用的工厂方法LocalDate.of()创建任意日期, 该方法需要传入年、月、日做参数,返回对应的LocalDate实例。

?
1
2
3
4
LocalDate yearAndMonthDay = LocalDate.of(2021, 08, 27);
System.out.println("yearAndMonthDay is : " + yearAndMonthDay);
 
yearAndMonthDay is : 2021-08-27

先介绍这几种,下面给出自己再封装的一些常用方法

再封装

下面我是在平常过程当中简单写了几个工具方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
**
 * java 8 日期工具类再封装
 * 尽量用java8的工具类操作日期
 * @Date 2021/6/2 4:01 下午
 * @Author yn
 */
@Component
public class LocalDateUtil {
 
 
    /**
     * 比较第一个日期是否小于第二个日期
     * @param firstDate 第一个日期
     * @param secondDate 第二个日期
     * @return true-小于;false-大于
     */
    public static boolean localDateIsBefore(LocalDate firstDate, LocalDate secondDate) {
        return firstDate.isBefore(secondDate);
    }
 
 
 
    /**
     * 比较第一个日期是否大于第二个日期
     * @param firstDate 第一个日期
     * @param secondDate 第二个日期
     * @return true-大于;false-不大于
     */
    public static boolean localDateIsAfter(LocalDate firstDate, LocalDate secondDate) {
        return firstDate.isAfter(secondDate);
    }
 
    /**
     * 比较两个日期是否相等
     * @param firstDate 第一个日期
     * @param secondDate 第二个日期
     * @return true-相等;false-不相等
     */
    public static boolean localDateIsEqual(LocalDate firstDate, LocalDate secondDate) {
        return firstDate.isEqual(secondDate);
    }
 
 
    /**
     * 字符串转换datetime
     * @param dateTime
     * @return yyyy-MM-dd HH:mm:ss
     */
    public static Date stringCoverDateTime(String dateTime){
        LocalDateTime startDateTime =
                LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        Date LocalDateTimeToDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
        return LocalDateTimeToDate;
    }
 
 
    /**
     * 字符串转换date
     * @param dateTime
     * @return  yyyy-MM-dd
     */
    public static Date stringCoverDate(String dateTime){
        LocalDateTime startDateTime =
                LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        Date LocalDateTimeToDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
        return LocalDateTimeToDate;
    }
}

Java8新增的日期、时间包

为了弥补传统Java对日期、时间处理的不足,Java8提供了一套全新的日期时间库。Java8专门新增了一个java.time包,该包下包含了如下常用类。(各位小伙伴可以去该包下面看下)

  • Clock:该类用于获取指定时区的当前日期、时间。该类可以取代System类的currentTimeMillis()方法,该类提供了大量的方法获取当前的日期和时间
  • Duration:该类代表持续时间
  • Instant:该类代表一个具体的时刻,可以精确到纳秒。该类主要提供了以下几个方法:

1)now():获取当前时刻。

2)now(Clock clock):获取clock对应的时刻。

3)minusXxx():在当前时刻基础上减去一段时间。

4)plusXxx():在当前时刻基础上加上一段时间。

  • LocalDate:该类代表不带时区的日期,如:2021-08-27
  • LocalTime:该类代表不带时区的时间,如:10:20:09
  • LocalDateTime:该类代表不带时区的日期、时间,如:2021-08-27T10:20:09。
  • ZonedDateTime:该类代表一个时区化的日期、时间。
  • ZonedId:该类代表一个时区。
  • DayOfWeek:该类是一个枚举类,定义了周日到周六的枚举值。
  • Month:该类是一个枚举类,定义了一月到十二月的枚举值。

OK。java8的日期的类先介绍到这里

总结

我们应该学会总结,java的每一次迭代  都会更新呢一些有利于我们开发的工具类,我们在日常开发中,要学会利用并总结出一套提高开发效率的一种东西

到此这篇关于java8日期工具类封装的文章就介绍到这了,更多相关java8日期工具类封装内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7001138877977067527

延伸 · 阅读

精彩推荐