zoukankan      html  css  js  c++  java
  • TimeUtil 工具类

    /**
     * TODO
     *
     * @auther xh
     * @date 6/11/19 3:32 PM
     */
    public class TimeUtil {
    
        public static final String defaultZone = "Asia/Shanghai";
        private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
    
        // 获得某天最大时间 2017-10-15 23:59:59
        public static Date getEndOfDay(Date date) {
            LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.of(defaultZone));
            LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX);
            return Date.from(endOfDay.atZone(ZoneId.of(defaultZone)).toInstant());
        }
    
        // 获得某天最小时间 2017-10-15 00:00:00
        public static Date getStartOfDay(Date date) {
            LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.of(defaultZone));
            LocalDateTime startOfDay = localDateTime.with(LocalTime.MIN);
            return Date.from(startOfDay.atZone(ZoneId.of(defaultZone)).toInstant());
    
        }
    
        // 获得某天最大时间 2017-10-15 23:59:59
        public static Instant getEndOfDay(Instant date) {
            LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(Date.from(date).getTime()), ZoneId.of(defaultZone));
            LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX);
            Date from = Date.from(endOfDay.atZone(ZoneId.of(defaultZone)).toInstant());
            return from.toInstant();
        }
    
    
        // 获得某天最小时间 2017-10-15 00:00:00
        public static Instant getStartOfDay(Instant date) {
            LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(Date.from(date).getTime()), ZoneId.of(defaultZone));
            LocalDateTime startOfDay = localDateTime.with(LocalTime.MIN);
            Date from = Date.from(startOfDay.atZone(ZoneId.of(defaultZone)).toInstant());
            return from.toInstant();
    
        }
    
        public static String date2Str(Date date) {
            if (date == null) {
                return null;
            }
            ZoneId zone = ZoneId.of(defaultZone);
            LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zone);
            return dateTimeFormatter.format(localDateTime);
        }
    
        public static String instant2Str(Instant date) {
            ZoneId zone = ZoneId.of(defaultZone);
            LocalDateTime localDateTime = LocalDateTime.ofInstant(date, zone);
            return dateTimeFormatter.format(localDateTime);
        }
    
        public static Date str2Date(String date) {
            if (StringUtils.isBlank(date)) {
                return null;
            }
            date = date.trim();
            if (date.length() == 10) {
                date += " 00:00:00";
            }
            LocalDateTime localDate = LocalDateTime.parse(date, dateTimeFormatter);
            ZoneId zone = ZoneId.of(defaultZone);
            Instant instant = localDate.atZone(zone).toInstant();
            return Date.from(instant);
        }
    
        public static Instant str2Instant(String date) {
            if (StringUtils.isBlank(date)) {
                return null;
            }
            date = date.trim();
            if (date.length() == 10) {
                date += " 00:00:00";
            }
            LocalDateTime localDateTime = LocalDateTime.parse(date, dateTimeFormatter);
            ZoneId zone = ZoneId.of(defaultZone);
            return localDateTime.atZone(zone).toInstant();
        }
    
    
        /**
         * 得到几天前的时间
         *
         * @param d
         * @param day
         * @return
         */
        public static Date getDateBefore(Date d, int day) {
            Calendar now = Calendar.getInstance();
            now.setTime(d);
            now.set(Calendar.DATE, now.get(Calendar.DATE) - day);
            return now.getTime();
        }
    
        /**
         * 得到几天后的时间
         *
         * @param d
         * @param day
         * @return
         */
        public static Date getDateAfter(Date d, int day) {
            Calendar now = Calendar.getInstance();
            now.setTime(d);
            now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
            return now.getTime();
        }
    }
    
    
  • 相关阅读:
    合并两个排序的链表
    把数组排成最小的数
    maven下使用jstl标签(1.2)版本
    SpringMVC5中,@ModelAttribute注解详解
    JavaWeb项目中斜杠(/)表示web工程、webapps的场景
    JavaWeb中jsp路径斜杆(/)跟没斜杆的路径映射问题
    关于Java多线程-interrupt()、interrupted()、isInterrupted()解释
    常见的HTTP状态码
    Java中的String,StringBuilder,StringBuffer三者的区别
    解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题
  • 原文地址:https://www.cnblogs.com/lanqie/p/11542175.html
Copyright © 2011-2022 走看看