# Herramientas de tiempo, conversión de tiempo común TimeUtils

Herramientas de tiempo, conversión de tiempo común TimeUtils

  • Deja de decir tonterías, en código simple
public class TimeUtils {
    
    

    private static String dateTimeFormt="yyyy-MM-dd HH:mm:ss";
    private static String dateFormat="yyyy-MM-dd";

    /**
     * 获得当前标准时间
     * @return
     */
    public static String currentDateTime(){
    
    
        Date date=new Date();
        SimpleDateFormat simpleFormatter=new SimpleDateFormat(dateTimeFormt);
        return simpleFormatter.format(date);
    }

    /**
     * 格式化传入的字符串类型的时间:2020-10-12 20:51:34.0000
     * @param str
     * @return
     */
    public static String paraseDateTime(String str){
    
    
        SimpleDateFormat simpleDateFormat=null;
        if(str.contains(":")) {
    
    
             simpleDateFormat= new SimpleDateFormat(dateTimeFormt);
        }else{
    
    
            simpleDateFormat=new SimpleDateFormat(dateFormat);
        }
        try {
    
    
            Date date = simpleDateFormat.parse(str);
            String time = simpleDateFormat.format(date);
            return time;
        } catch (ParseException e) {
    
    
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 参数是String类型的时间得到Date类型的时间
     * @param str
     * @return
     */
    public static Date getDateBystr(String str){
    
    
        SimpleDateFormat simpleDateFormat=null;
        if(str.contains(":")) {
    
    
            simpleDateFormat= new SimpleDateFormat(dateTimeFormt);
        }else{
    
    
            simpleDateFormat=new SimpleDateFormat(dateFormat);
        }
        try {
    
    
            Date date = simpleDateFormat.parse(str);
            return date;
        } catch (ParseException e) {
    
    
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 获得当前的时间戳
     * @return
     */
    public static long currentTimestamp(){
    
    
        return System.currentTimeMillis();
    }

    /**
     * 将时间戳转换为标准时间:yyyy-MM-dd HH:mm:ss
     * @param timestamp
     * @return
     */
    public static String timeStampleToTime(String timestamp){
    
    
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(dateTimeFormt);
        long time= Long.parseLong(timestamp);
        Date date=new Date(time);
        String dateTime = simpleDateFormat.format(date);
        return dateTime;
    }

    /**
     * 将时间字符串转换为
     * @param str
     * @return
     */
    public static String timeTotimestamp(String str){
    
    
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(dateTimeFormt);
        try {
    
    
            Date date = simpleDateFormat.parse(str);
            long time=date.getTime();
            return String.valueOf(time);
        } catch (ParseException e) {
    
    
            e.printStackTrace();
            return null;
        }
    }


    /**
     * 计算出当前时间的前或者后几天的时间,
     * 例如:当前时间的后5天的时间为:2020-10-17 21:42:35
     *      当前时间的前5天的时间为:2020-10-07 21:44:08
     * @param num
     * @return
     */
    public static String getWantDateTime(int num){
    
    
        Calendar calendar=Calendar.getInstance();
        calendar.add(Calendar.DATE,num);
        Date date = calendar.getTime();
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(dateTimeFormt);
        String time = simpleDateFormat.format(date);
        return time;
    }

    public static String getWhenDay(String str){
    
    
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(dateTimeFormt);
        try {
    
    
            Date date = simpleDateFormat.parse(str);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            int days = Days(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DATE));
            return String.valueOf(days);
        } catch (ParseException e) {
    
    
            e.printStackTrace();
            return null;
        }
    }

    public static int Days(int year, int month, int day) {
    
    
        // 定义累加器储存天数
        int num = 0;
        // 遍历月份,求每个月份的天数和
        for (int i = 1; i < month; i++) {
    
    
            switch (i) {
    
    
        // 当月为大月时累加31
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    num += 31;
                    break;
        // 当月为二月时闰年累加29,平年累加28
                case 2:
                    num += (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 29 : 28;
                    break;
                default:
                    num += 30;
                    break;
            }
        }
        // 加上日
        num += day;
        return num;
    }

    @Test
    public void test1(){
    
    
        System.out.println(TimeUtils.currentDateTime());
        System.out.println(TimeUtils.paraseDateTime("2020-10-12 20:51:34.0000"));
        System.out.println(TimeUtils.getDateBystr("2020-10-12"));
        long l = System.currentTimeMillis();
        System.out.println(TimeUtils.paraseDateTime("1602507934738"));
        System.out.println(TimeUtils.timeStampleToTime("1602507934738"));
        System.out.println(TimeUtils.timeStampleToTime("1602507934000"));
        System.out.println(TimeUtils.timeTotimestamp("2020-10-12 21:05:34"));
        System.out.println(TimeUtils.getWhenDay("2020-01-01 21:44:08"));
        System.out.println(TimeUtils.currentTimestamp());
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_37248504/article/details/109038181
Recomendado
Clasificación