java 时间转化


package com.ifourthwall.dbm.seer.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class DateString {
    
    

    private static SimpleDateFormat sdfShort = new SimpleDateFormat("yyyy-MM-dd");

    private static SimpleDateFormat sdfLong = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


    private static SimpleDateFormat specialLong = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");


    private static SimpleDateFormat specialSdfShort = new SimpleDateFormat("yyyyMMdd");


    private static SimpleDateFormat sdfSpecialHH = new SimpleDateFormat("HH:mm:ss");

    // 统计类型
    public static int REPORT_CONSTANT_TYPE_HOUR = 1;

    // 统计类型
    public static int REPORT_CONSTANT_TYPE_DAY = 2;

    // 时间 59分钟59秒
    public static long REPORT_KE_TUO_TIME_CONSTANT = 3599999;

    /*
     * (Unix时间戳)长整型类型转换为日期格式字符串
     */
    public static String millisecondTosdfSpecialHH(long millisecond) {
    
    
        return sdfSpecialHH.format(millisecond);
    }


    /*
     * (Unix时间戳)长整型类型转换为日期格式字符串
     */
    public static String millisecondSpecialSdfShort(long millisecond) {
    
    
        return specialSdfShort.format(millisecond);
    }


    /*
     * 日期时间格式字符串转换为Date类型
     */
    public static Date stringLongToDate(String string) throws Exception {
    
    
        return sdfLong.parse(string);
    }



    /*
     * 日期时间格式字符串转换为Date类型
     */
    public static Date stringSpecialLongToDate(String string) throws Exception {
    
    
        return specialLong.parse(string);
    }

    /*
     * 日期格式字符串转换为Date类型
     */
    public static Date stringShortToDate(String string) throws Exception {
    
    
        return sdfShort.parse(string);
    }

    /*
     * 长整型毫秒(自1970-01-01  00:00:00 GMT过去的毫秒数,又称Unix时间戳)转换为Date类型
     */
    public static Date millisecondToDate(long millisecond) {
    
    
        return new Date(millisecond);
    }

    /*
     * 日期时间格式字符串转换为(Unix时间戳)长整型类型
     */
    public static long stringLongToMillisecond(String string) throws Exception {
    
    
        return stringLongToDate(string).getTime();
    }


    /*
     * 日期时间格式字符串转换为(Unix时间戳)长整型类型
     */
    public static long stringSpecialLongToMillisecond(String string) throws Exception {
    
    
        return stringSpecialLongToDate(string).getTime();
    }

    /*
     * 日期格式字符串转换为(Unix时间戳)长整型类型
     */
    public static long stringShortToMillisecond(String string) throws Exception {
    
    
        return stringShortToDate(string).getTime();
    }

    /*
     * Date类型转换为(Unix时间戳)长整型类型
     */
    public static long dateToMillisecond(Date date) {
    
    
        return date.getTime();
    }

    /*
     * (Unix时间戳)长整型类型转换为日期时间格式字符串
     */
    public static String millisecondToStringLong(long millisecond) {
    
    
        return sdfLong.format(millisecond);
    }

    /*
     * Date类型转换为日期时间格式字符串
     */
    public static String dateToStringLong(Date date) {
    
    
        return sdfLong.format(date);
    }

    /*
     * (Unix时间戳)长整型类型转换为日期格式字符串
     */
    public static String millisecondToStringShort(long millisecond) {
    
    
        return sdfShort.format(millisecond);
    }

    /*
     * Date类型转换为日期格式字符串
     */
    public static String dateToStringShort(Date date) {
    
    
        return sdfShort.format(date);
    }


    /**
     * 转化的的时间
     * @param mss
     * @return 该毫秒数转换为 * days * hours * minutes * seconds 后的格式
     * @author tanglei
     */
    public static String formatDuring(long mss) {
    
    
        // long days = mss / (1000 * 60 * 60 * 24);
        long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
        long minutes = (mss % (1000 * 60 * 60)) / (1000 * 60);
        long seconds = (mss % (1000 * 60)) / 1000;
        return hours + ":" + minutes + ":" + seconds;
    }
    /**
     *
     * @param begin 时间段的开始
     * @param end	时间段的结束
     * @return	输入的两个Date类型数据之间的时间间格用* days * hours * minutes * seconds的格式展示
     * @author tanglei
     */
    public static String formatDuring(Date begin, Date end) {
    
    
        return formatDuring(end.getTime() - begin.getTime());
    }



    /**
     * @Description 是否为当天24h内
     * @author tanglei
     * @param inputJudgeDate 要判断是否在当天24h内的时间
     * @return
     * boolean
     */
    public static boolean isToday(Date inputJudgeDate) {
    
    
        boolean flag = false;
        //获取当前系统时间
        long longDate = System.currentTimeMillis();
        Date nowDate = new Date(longDate);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = dateFormat.format(nowDate);
        String subDate = format.substring(0, 10);
        //定义每天的24h时间范围
        String beginTime = subDate + " 00:00:00";
        String endTime = subDate + " 23:59:59";
        Date parseBeginTime = null;
        Date parseEndTime = null;
        try {
    
    
            parseBeginTime = dateFormat.parse(beginTime);
            parseEndTime = dateFormat.parse(endTime);
        } catch (ParseException e) {
    
    
            e.getMessage();
        }
        if(!inputJudgeDate.after(parseEndTime) && !inputJudgeDate.before(parseBeginTime)) {
    
    
            flag = true;
        }
        return flag;
    }


    /**
     * 将某段时间切分成小时
     * @param startDateTime
     * @param endDateTime
     * @return
     */
    public static List<String> cutInterval(String startDateTime, String endDateTime){
    
    
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime localDateTime1 =LocalDateTime.parse(startDateTime, formatter);
        LocalDateTime end =LocalDateTime.parse(endDateTime, formatter);
        //秒数置为0
        LocalDateTime start = localDateTime1.withMinute(0);
        //时间段分割
        List<String> list = new ArrayList<>();
        while(start.plusHours(1).isBefore(end.plusHours(1)))
        {
    
    
            list.add(localDateTimeToTimestamp(start)+"==="+localDateTimeToTimestamp(start.plusHours(1)));
            start=start.plusHours(1);
        }
        return list;
    }

    public static String localDateTimeToTimestamp(LocalDateTime localDateTime) {
    
    
        try {
    
    
            ZoneId zoneId = ZoneId.systemDefault();
            Instant instant = localDateTime.atZone(zoneId).toInstant();
            long toEpochMilli = instant.toEpochMilli();
            return DateString.millisecondToStringLong(toEpochMilli);

        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        return null;
    }
    

}
**帮助到您请点赞关注收藏谢谢!!**

猜你喜欢

转载自blog.csdn.net/qq_42496238/article/details/109749058