时间类型的转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37012236/article/details/77726591
下面的方法可以得到三天前的具体时间-->

	Date start=new Date();//取时间
        
	Calendar calendar = new GregorianCalendar();
        
	calendar.setTime(start);
        
	calendar.add(calendar.DATE,-3);//把日期往前推3天
        
	start=calendar.getTime();

	我们的用Gson转化的Date类型数据到前台会转化为一个时间戳:
 
 
	new Gson().toJson(对象索引)

也可以使用普遍的转换方法-->
	
	Date date = new Date();
        SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String todayTime = formate.format(date);

下面介绍一个神奇的时间工具类:

package com.jd.ecc.commons.lib.utils;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


public class DateFormatUtil {
    private static final String DATE_FORMAT = "yyyy-MM-dd";
    private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    private static final String YEAR_MONTH_FORMAT = "yyyy-MM";


    public DateFormatUtil() {
    }


    public static boolean isValidDate(String dateStr) {
        return validFormat(dateStr, "yyyy-MM-dd");
    }


    public static boolean isValidDate(String datetStr, String dateFormat) {
        return validFormat(datetStr, dateFormat);
    }


    public static boolean isValidDateTime(String datetimeStr) {
        return validFormat(datetimeStr, "yyyy-MM-dd HH:mm:ss");
    }


    public static boolean isValidDateTime(String datetimeStr, String datetimeFormat) {
        return validFormat(datetimeStr, datetimeFormat);
    }


    public static boolean validFormat(String str, String format) {
        boolean convertSuccess = true;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);


        try {
            simpleDateFormat.setLenient(false);
            Date e = simpleDateFormat.parse(str);
            Date maxDate = simpleDateFormat.parse("9999-12-31");
            if(e.after(maxDate)) {
                convertSuccess = false;
            }
        } catch (ParseException var6) {
            convertSuccess = false;
        }


        return convertSuccess;
    }


    public static String getTodayTime() {
        Date date = new Date();
        SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String todayTime = formate.format(date);
        return todayTime;
    }


    public static String getTodatDate() {
        Date date = new Date();
        SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd");
        String todayDate = formate.format(date);
        return todayDate;
    }


    public static String getYesterdayDate() {
        Date date = new Date();
        GregorianCalendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        calendar.add(5, -1);
        date = calendar.getTime();
        SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd");
        String yesterdayDate = formate.format(date);
        return yesterdayDate;
    }


    public static String getYesterdayTime() {
        Date date = new Date();
        GregorianCalendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        calendar.add(5, -1);
        date = calendar.getTime();
        SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String yesterdayTime = formate.format(date);
        return yesterdayTime;
    }


    public static String getNowMonth() {
        Date d = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
        String nowMonth = df.format(d);
        System.out.println(nowMonth);
        return nowMonth;
    }


    public static String getLastMonth() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
        int validMonth = cd.get(2) - 1;
        cd.set(2, validMonth);
        Date dt = cd.getTime();
        String lastMonth = df.format(dt);
        return lastMonth;
    }


    public static String getTodayBeginTime() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cd.set(11, 0);
        cd.set(12, 0);
        cd.set(13, 0);
        Date dt = cd.getTime();
        String todayBeginTime = df.format(dt);
        return todayBeginTime;
    }


    public static String getTodayEndTime() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cd.set(11, 23);
        cd.set(12, 59);
        cd.set(13, 59);
        Date dt = cd.getTime();
        String todayEndTime = df.format(dt);
        return todayEndTime;
    }


    public static String getYesterdayBeginTime() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        int yesterday = cd.get(5) - 1;
        cd.set(5, yesterday);
        cd.set(11, 0);
        cd.set(12, 0);
        cd.set(13, 0);
        Date dt = cd.getTime();
        String yesterdayBeginTime = df.format(dt);
        return yesterdayBeginTime;
    }


    public static String getYesterdayEndTime() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        int yesterday = cd.get(5) - 1;
        cd.set(5, yesterday);
        cd.set(11, 23);
        cd.set(12, 59);
        cd.set(13, 59);
        Date dt = cd.getTime();
        String yesterdayEndTime = df.format(dt);
        return yesterdayEndTime;
    }


    public static String getNowMonthBeginTime() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cd.add(2, 0);
        cd.set(5, 1);
        cd.set(11, 0);
        cd.set(12, 0);
        cd.set(13, 0);
        Date dt = cd.getTime();
        String nowMonthBeginTime = df.format(dt);
        return nowMonthBeginTime;
    }


    public static String getNowMonthBeginDate() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        cd.add(2, 0);
        cd.set(5, 1);
        Date dt = cd.getTime();
        String nowMonthBeginDate = df.format(dt);
        return nowMonthBeginDate;
    }


    public static String getNowMonthEndTime() {
        Calendar ca = Calendar.getInstance();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ca.set(5, ca.getActualMaximum(5));
        ca.set(11, 23);
        ca.set(12, 59);
        ca.set(13, 59);
        String nowMonthEndTime = df.format(ca.getTime());
        return nowMonthEndTime;
    }


    public static String getNowMonthEndDate() {
        Calendar ca = Calendar.getInstance();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        ca.set(5, ca.getActualMaximum(5));
        String nowMonthEndDate = df.format(ca.getTime());
        return nowMonthEndDate;
    }


    public static String getLastMonthBeginTime() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cd.add(2, -1);
        cd.set(5, 1);
        cd.set(11, 0);
        cd.set(12, 0);
        cd.set(13, 0);
        Date dt = cd.getTime();
        String lastMonthBeginTime = df.format(dt);
        return lastMonthBeginTime;
    }


    public static String getLastMonthBeginDate() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        cd.add(2, -1);
        cd.set(5, 1);
        Date dt = cd.getTime();
        String lastMonthBeginDate = df.format(dt);
        return lastMonthBeginDate;
    }


    public static String getLastMonthEndTime() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cd.set(5, 0);
        cd.set(11, 23);
        cd.set(12, 59);
        cd.set(13, 59);
        Date dt = cd.getTime();
        String lastMonthEndTime = df.format(dt);
        return lastMonthEndTime;
    }


    public static String getLastMonthEndDate() {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        cd.set(5, 0);
        Date dt = cd.getTime();
        String lastMonthEndDate = df.format(dt);
        return lastMonthEndDate;
    }


    public static String getAfterDaysTime(Integer dateLen) {
        GregorianCalendar cd = new GregorianCalendar();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cd.add(5, dateLen.intValue());
        cd.set(11, 23);
        cd.set(12, 59);
        cd.set(13, 59);
        Date dt = cd.getTime();
        String afterThirtyDaysDate = df.format(dt);
        return afterThirtyDaysDate;
    }


    public static String getNowWeekBeginTime() {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar cds = Calendar.getInstance();
        cds.setFirstDayOfWeek(2);
        cds.set(11, 0);
        cds.set(12, 0);
        cds.set(13, 0);
        cds.set(7, 2);
        String thisweekstart = df.format(cds.getTime());
        return thisweekstart;
    }


    public static String getNowWeekEndTime() {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar cde = Calendar.getInstance();
        cde.setFirstDayOfWeek(2);
        cde.set(11, 23);
        cde.set(12, 59);
        cde.set(13, 59);
        cde.set(7, 1);
        String thisweekend = df.format(cde.getTime());
        return thisweekend;
    }


    public static String getLastWeekBeginTime() {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar cdl = Calendar.getInstance();
        cdl.setFirstDayOfWeek(2);
        cdl.add(4, -1);
        cdl.set(7, 1);
        cdl.set(11, 0);
        cdl.set(12, 0);
        cdl.set(13, 0);
        cdl.set(7, 2);
        String lastweekstart = df.format(cdl.getTime());
        return lastweekstart;
    }


    public static String getLastWeekEndTime() {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar cdle = Calendar.getInstance();
        cdle.setFirstDayOfWeek(2);
        cdle.add(4, -1);
        cdle.set(7, 1);
        cdle.set(11, 23);
        cdle.set(12, 59);
        cdle.set(13, 59);
        String lastweekend = df.format(cdle.getTime());
        return lastweekend;
    }


    public static String getThreeMonthAgoTime() {
        new Date();
        Calendar cald = Calendar.getInstance();
        cald.add(2, -3);
        Date date = cald.getTime();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String threeMonthAgoTime = df.format(date);
        return threeMonthAgoTime;
    }


    public static String getThreeMonthAgoDate() {
        new Date();
        Calendar cald = Calendar.getInstance();
        cald.add(2, -3);
        Date date = cald.getTime();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        String threeMonthAgoDate = df.format(date);
        return threeMonthAgoDate;
    }
}
功能简介-->
 
 
方法返回类型
方法名称
方法含义
方法返回类型
方法名称
方法含义
boolean isValidDate(String dateStr) 根据默认格式校验日期
boolean isValidDate(String datetStr, String dateFormat) 自定义格式校验日期
boolean isValidDateTime(String datetimeStr) 根据默认格式校验时间
boolean isValidDateTime(String datetimeStr, String datetimeFormat) 自定义格式校验时间
boolean validFormat(String str, String format) 格式校验抽象方法
String getTodayTime() 获得今天具体时间
String getTodatDate() 获得今天日期
String getYesterdayDate() 获得昨天日期
String getYesterdayTime() 获得昨天具体时间
String getNowMonth() 获取当前月
String getLastMonth() 获取上一个月
String getTodayBeginTime() 获取当天的开始时间
String getTodayEndTime 获取当天的结束时间
String getYesterdayBeginTime() 获取前一天的开始时间
String getYesterdayEndTime() 获取前一天的结束时间
String getNowMonthBeginTime() 获得当前月的第一天开始时间
String getNowMonthBeginDate() 获得当前月的第一天开始日期
String getNowMonthEndTime() 获得当前月最后一天结束时间
String getNowMonthEndDate() 获得当前月最后一天结束日期
String getLastMonthBeginTime() 获得前一月的第一天开始时间
String getLastMonthBeginDate() 获得前一月的第一天开始日期
String getLastMonthEndTime() 获得前一月的最后一天结束时间
String getLastMonthEndDate() 获得前一月的最后一天结束日期
String getAfterDaysTime(Integer dateLen) 获得当前时间后X天之后的结束时间
String getNowWeekBeginTime() 获得本周开始时间
String getNowWeekEndTime() 获得本周结束时间
String getLastWeekBeginTime() 获得上周开始时间
String getLastWeekEndTime() 获得上周结束时间
String getThreeMonthAgoTime() 获得3个月前时间
String getThreeMonthAgoDate() 获得3个月前日期

猜你喜欢

转载自blog.csdn.net/qq_37012236/article/details/77726591
今日推荐