Java 基础
  • Introduction
  • 工具类
    • 日期
  • 枚举
  • 多线程
    • java中多线程实现的3种方式
    • ThreadPoolExecutor线程池参数设置技巧
  • Java Stream API 入门篇
  • gradle项目构建工具
    • gradle使用总结
      • eclipse中指定gradle的java home
      • gradle 跨工程引用
      • Gradle 引入本地定制 jar 包
      • gradle构建脚本基础
      • maven-publish plugin
      • 灵铱公司-会员订单项目配置
      • ssh plugin
  • json
    • gson
      • gson使用指南
  • 并发编程
    • Lock
    • Condition
    • Semaphore对象池-令牌桶
    • 读多写少·读写互斥·本地缓存
    • 线程池线程任务执行完成计数器
    • 线程池使用
  • Google Guava官方教程
    • Guave Cache
Powered by GitBook
On this page

Was this helpful?

  1. 工具类

日期

字符串和日期相互转换

package com.univer.crawl.util;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;

import lombok.Generated;

@Generated
public class DateUtil {

    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

    //date转字符串
    public static String format(Date date) {
        if(null == date) {
            return null;
        }
        return DATE_FORMATTER.format(date.toInstant().atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime());
    }
    //字符串转date
    public static Date parse(String date) {
        if(StringUtils.isBlank(date)) {
            return null;
        }
        LocalDateTime localDateTime = LocalDateTime.parse(date, DATE_FORMATTER);
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");
        ZonedDateTime zdt = localDateTime.atZone(zoneId);
        return Date.from(zdt.toInstant());
    }


    //得到当天的0时
    public static Date getDayZero(Date date) {
        if(null == date) {
            return null;
        }

        Date dayZero = DateUtils.setSeconds(DateUtils.setMinutes(DateUtils.setHours(date, 0), 0), 0);
        return dayZero;
    }
    //得到当天的23:59:59
    public static Date getDayTwelve(Date date) {
        if(null == date) {
            return null;
        }

        Date dayTwelve = DateUtils.setSeconds(DateUtils.setMinutes(DateUtils.setHours(date, 23), 59), 59);
        return dayTwelve;
    }

     /**
     * @author wumingsheng
     * 计算两个时间点之间的天数
     */
    public static long getBetweenDay(Date start, Date end) {

        LocalDate startLocalDate = LocalDate.ofInstant(start.toInstant(),  ZoneId.of("Asia/Shanghai"));
        LocalDate endLocalDate = LocalDate.ofInstant(end.toInstant(),  ZoneId.of("Asia/Shanghai"));
        return endLocalDate.toEpochDay() - startLocalDate.toEpochDay();
    }

}
Previous工具类Next枚举

Last updated 6 years ago

Was this helpful?