【个人总结 | 个人转载】——Java时间工具类

本文介绍两个时间日期工具类的使用:1、Joda-time;2、Java8自带的时间类。

两者的使用都很方便,用法类似,少量代码就可以实现常用的功能,如:根据自定义格式获取时间、时间加减、时间对比等。

 

具体看代码:

1. maven项目引入jar 包

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.10</version>
</dependency>

2. 代码:(不够用自己扩展一下,在公司wiki上看到的,自己整理了一下)

package com.cyf.date;
import org.joda.time.DateTime;
import java.util.Objects;

/**
 * @author cyf
 * @description
 * @create 2018-11-16 16:35
 **/
public class TestJodaTime {

    public static final String DEFAULT_PATTEN = "yyyy-MM-dd HH:mm:ss";
    public static final Integer DEFAULT_MONTH = 1;

    /**
     * 获取当前时间
     *
     * @return 当前时间默认格式为 yyyy-MM-dd HH:mm:ss
     */
    public static String getNowDate() {
        return getNowDate(null);
    }

    /**
     * 获取当前时间
     *
     * @return 返回当前时间
     */
    public static DateTime nowDate() {
        return new DateTime();
    }

    /**
     * 获取当前时间
     *
     * @param pattern 格式
     * @return 返回当前时间 格式为 pattern
     * 默认为 yyyy-MM-dd HH:mm:ss
     */
    public static String getNowDate(String pattern) {
        if (Objects.isNull(pattern)) {
            pattern = DEFAULT_PATTEN;
        }
        return new DateTime().toString(pattern);
    }

    /**
     * 获取前几个月时间
     *
     * @param date        当前时间
     * @param beforeMonth 几个月前
     * @return 返回几个月前时间 默认为 yyyy-MM-dd HH:mm:ss
     */
    public static String getBeforeMonthDate(DateTime date, Integer beforeMonth) {
        return getBeforeMonthDate(date, beforeMonth, null);
    }

    /**
     * 获取前几个月时间
     *
     * @param date        当前时间
     * @param beforeMonth 几个月前
     * @return 返回几个月前时间 格式为 pattern
     * 默认为 yyyy-MM-dd HH:mm:ss
     * @Param pattern       时间格式
     */
    public static String getBeforeMonthDate(DateTime date, Integer beforeMonth, String pattern) {
        if (Objects.isNull(beforeMonth)) {
            beforeMonth = DEFAULT_MONTH;
        }
        if (Objects.isNull(pattern)) {
            pattern = DEFAULT_PATTEN;
        }
        return date.minusMonths(beforeMonth).toString(pattern);
    }


    // Joda-time的使用 测试
    public static void main(String[] args) {

        //日期比较
        DateTime d1 = new DateTime("2012-02-01");
        DateTime d2 = new DateTime("2012-05-01");

        //和系统时间比
        boolean b1 = d1.isAfterNow();
        boolean b2 = d1.isBeforeNow();
        boolean b3 = d1.isEqualNow();

        //和其他日期比
        boolean f1 = d1.isAfter(d2);
        boolean f2 = d1.isBefore(d2);
        boolean f3 = d1.isEqual(d2);

        // 获取当前时间
        String nowDate = getNowDate();
        System.out.println("当前时间:" + nowDate);

        DateTime now = nowDate();
        // 获取4个月之前的时间
        String beforeDate = getBeforeMonthDate(now, 4);
        System.out.println("4个月之前的时间:" + beforeDate);

        // 其他方法
        System.out.println("当前时间:" + now.toString(DEFAULT_PATTEN));
        System.out.println("9天后时间:" + now.plusDays(9).toString(DEFAULT_PATTEN));
        System.out.println("4分钟后时间:" + now.plusMinutes(4).toString(DEFAULT_PATTEN));
        System.out.println("4小时后时间:" + now.plusHours(4).toString(DEFAULT_PATTEN));
    }

//    Java8时间类使用
//    public static void main(String[] args) {
//
//        //获取时间
//        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
//        Instant instant = Instant.now();
//        LocalDate localDate = LocalDate.now();
//        LocalTime localTime = LocalTime.now();
//        String localDateTime = LocalDateTime.now().format(dateTimeFormatter);
//        LocalDate date = LocalDate.of(2018, 10, 30);
//        System.out.println(instant);
//        System.out.println(localDate);
//        System.out.println(localTime);
//        System.out.println(localDateTime);
//        System.out.println(date);
//
//        //时间加减
//        LocalTime localTime1 = localTime.plusHours(2);//增加两个小时
//        String localDateTime1 = LocalDateTime.now().plusDays(2).format(dateTimeFormatter);//增加两天
//        String localDateTime2 = LocalDateTime.now().minusDays(2).format(dateTimeFormatter);//减少两天
//        System.out.println(localTime1);
//        System.out.println(localDateTime1);
//        System.out.println(localDateTime2);
//
//        //日期比较
//        LocalDateTime dt1 = LocalDateTime.now().plusDays(2);
//        LocalDateTime dt2 = LocalDateTime.now().minusDays(2);
//        boolean flag = dt1.isAfter(dt2);//dt1是否大于dt2
//        boolean flag1 = dt1.isBefore(dt2);//dt1是否大于dt2
//        boolean flag2 = dt1.isEqual(dt2);//dt1是否等于dt2
//        System.out.println(flag);
//        System.out.println(flag1);
//        System.out.println(flag2);
//    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值