java DateUtil 【java基础】

68 篇文章 0 订阅
51 篇文章 0 订阅

好的DateUtil可以更好的服务于应用。使code简洁明了。

在此提供下本人写的(经常用的)DateUtil。先看下方法提示

效果:

测试:


        String starttime = DateUtil.getDateyMdHmsS();
        Date dates = new Date();

        /*日期计算*/
        //时间计算到天:860天
        System.out.println(DateUtil.TotalDay("2016-08-20", "2018-12-28"));
        //时间计算:精确到秒:剩余:738天4小时5分7秒
        System.out.println(DateUtil.TotalDayHms("2016-12-20 13:23:12", "2018-12-28 17:28:19"));
        //时间计算:精确到毫秒:剩余:738天5小时5分7秒135毫秒
        System.out.println(DateUtil.TotalDayHmsS("2016-12-20 12:23:12.223", "2018-12-28 17:28:19.358"));
        //当前时间的前3天:
        //2016年12月12日
        System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", DateUtil.getDate("yyyy年MM月dd日"), -3, "yyyy年MM月dd日"));
        //
        //当前时间的后3天:2016年12月18日
        System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", DateUtil.getDate("yyyy年MM月dd日"), 3, "yyyy年MM月dd日"));
        //指定日期的明天是:2016-12-16
        System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", "2016年12月15日", 1, "yyyy-MM-dd"));
        //指定日期的大后天是:
        //2016-12-18 12:23:16
        System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日 HH:mm:ss", "2016年12月15日 12:23:16", 3, "yyyy-MM-dd HH:mm:ss"));
        //指定日期的昨天是:2016-12-14
        System.out.println(DateUtil.getDateCountDay("yyyy年MM月dd日", "2016年12月15日", -1, "yyyy-MM-dd"));


        //闰年判断
        System.out.println("闰年判断:");
        //2014年7月23日: false
        System.out.println("2014年7月23日: "+DateUtil.getDateIsLeapYear("2014年7月23日","yyyy年MM月dd日"));
        //2016-12-28 is true
        System.out.println("2016-12-28 is "+DateUtil.getDateIsLeapYear("2016-12-28","yyyy-MM-dd"));

        // 二月份合规检查
        //2016-02-28 is 2月最后一天为:2月29日 (公历)
        System.out.println("2016-02-28 is "+DateUtil.getDateIsMonthDay("2016-2-28","yyyy-MM-dd"));
        //2017-02-29 is 2月最后一天为:2月28日 (公历)
        System.out.println("2017-02-29 is "+DateUtil.getDateIsMonthDay("2017-2-29","yyyy-MM-dd"));

        /*时间戳转换*/
        System.out.println("时间戳转换:");
        //获取指定日期的时间戳 1482898996238
        System.out.println(DateUtil.getDateMillisecond("2016-12-28 12:23:16.238", "yyyy-MM-dd HH:mm:ss.SSS"));
        //时间戳的日期 2016-12-28 12:23:16.238
        System.out.println(DateUtil.getMillisecondDate(1482898996238L, "yyyy-MM-dd HH:mm:ss.SSS"));

        /*获取当前日期 */
        //当前时间戳 1482898996238
        System.out.println(DateUtil.getTimeInMillis());
        //当前日期,含毫秒 可用于高精度的时间差计算
        System.out.println(DateUtil.getDateyMdHmsS());
        //2016-12-28 15:17:24
        System.out.println(DateUtil.getDate("yyyy-MM-dd HH:mm:ss"));
        //14:33
        System.out.println(DateUtil.getDate("HH:mm"));
        //12-28
        System.out.println(DateUtil.getDate("MM-dd"));
        //14时33分
        System.out.println(DateUtil.getDate("HH时mm分"));
        //12月28日
        System.out.println(DateUtil.getDate("MM月dd日"));
        //2016-12-28 15:20:10 星期三
        System.out.println(DateUtil.getDateWeek());
        //星期三 2016-12-28 16:17:04
        System.out.println(DateUtil.getWeekDate());
        //2016-12-28 星期三
        System.out.println(DateUtil.getDateWeeks());
        //12月28日 星期三
        System.out.println(DateUtil.getDateWeekmd());
        //12-28 星期三
        System.out.println(DateUtil.getDateWeekmdC());
        //12-28 星期三 16:29
        System.out.println(DateUtil.getDateWeekMdHm());
        //12月28日 星期三 16:31
        System.out.println(DateUtil.getDateWeekMdHmC());
        //2016年12月28日 15时17分24秒 星期三
        System.out.println(DateUtil.getDateWeekC());
        //2016年12月28日 星期三 16时12分21秒
        System.out.println(DateUtil.getWeekCDate());
        //2016年12月28日 星期三
        System.out.println(DateUtil.getDateWeekCh());
        /*指定日期带星期:*/
        //指定日期 带星期:
        //2016-12-28 是 星期三
        System.out.println(DateUtil.getWeekOfDate("2016-12-28"));
        //2016年12月28日 是 星期三
        System.out.println(DateUtil.getWeekOfDate(DateUtil.getDateTypeMds("2016年12月28日")));
        /*英式*/
        //Wednesday
        System.out.println(DateUtil.getWeekE());
        //Wed.
        System.out.println(DateUtil.getWeekEn());
        //Wednesday
        System.out.println(DateUtil.getWeekOfDateE("2016-12-28"));
        //Wed.
        System.out.println(DateUtil.getWeekOfDateEn(DateUtil.getDateTypeMds("2016年12月28日")));

        /*month*/
        //December
        System.out.println(DateUtil.getMonthE());
        //Dec.
        System.out.println(DateUtil.getMonthEn());
        //December
        System.out.println(DateUtil.getMonthOfDateE("2016-12-28"));
        //Dec.
        System.out.println(DateUtil.getMonthOfDateEn(DateUtil.getDateTypeMds("2016年12月28日")));
        /*英版-日期格式 当前日期 */
        //Wednesday,December 28,2016
        System.out.println(DateUtil.getDateE());
        //Wed.Dec.28, 2016
        System.out.println(DateUtil.getDateEn());
        //Dec.28, 2016
        System.out.println(DateUtil.getDateEng());
        /*指定日期-英版*/
        //Wed.Dec.28, 2016
        System.out.println(DateUtil.getDateWeekE("2016-12-28"));
        //Sun.Feb.28, 2016
        System.out.println(DateUtil.getDateWeekE("2016-02-28"));
        //Wednesday,December 28, 2016
        System.out.println(DateUtil.getDateWeekEn("2016-12-28"));
        //Mon.Mar.28, 2016
        System.out.println(DateUtil.getDateWeekE(DateUtil.getDateTypeMds("2016年3月28日")));

        /*Calendar*/
        //当前日期:Thu Dec 28 14:58:33 CST 2016
        System.out.println(Calendar.getInstance().getTime());
        //当前日期转换:2016-12-28 16:42:41
        System.out.println(DateUtil.getCalendarToStr(Calendar.getInstance()));
        //2016-12-28 16:42
        System.out.println(DateUtil.getCalendarToStrHm(Calendar.getInstance()));

        /*日期转换*/
        //yyyy-MM-dd HH:mm:ss 转 yyyy年M月d日 HH时mm分ss秒   (日期中月、日带0的,转换后则不含0)
        //2016-02-12 12:23:12 is 2016年2月12日 12时23分12秒
        System.out.println("2016-02-12 12:23:12 is " + DateUtil.getDateType("2016-02-12 12:23:12"));
        //2016-12-02 12:23:12 is 2016年12月2日 12时23分12秒
        System.out.println("2016-12-02 12:23:12 is " + DateUtil.getDateType("2016-12-02 12:23:12"));
        //2016-02-09 12:23:12 is 2016年2月9日 12时23分12秒
        System.out.println("2016-02-09 12:23:12 is " + DateUtil.getDateType("2016-02-09 12:23:12"));

        //yyyy年MM月dd日 HH时mm分ss秒 转 yyyy-M-d HH:mm:ss (日期中月、日带0的,转换后则不含0)
        //2016-12-20 12:23:12
        System.out.println(DateUtil.getDateTypes("2016年12月20日 12时23分12秒"));
        //2016-1-3 02:03:02
        System.out.println(DateUtil.getDateTypes("2016年01月03日 02时03分02秒"));

        //2016-12-28 16:02:27
        System.out.println(DateUtil.getCalendarToStr(Calendar.getInstance(), "yyyy-MM-dd HH:mm:ss"));
        //Sat Jan 23 12:23:35 CST 2016
        System.out.println(DateUtil.getStrToDate("2016-01-23 12:23:35", "yyyy-MM-dd HH:mm:ss").toString());
        //2016-12-28 16:11:59
        System.out.println(DateUtil.getDateToStr(dates, "yyyy-MM-dd HH:mm:ss"));

        /*起始日期*/
        //今日开始日期:2016-12-28 00:00:00.000
        System.out.println(DateUtil.getDate("yyyy-MM-dd 00:00:00.000"));
        //指定日期的开始时间:2016-01-23 00:00:00.000
        System.out.println(DateUtil.getStartDateValue("2016-01-23 12:23:35.221"));
        //今日结束日期:2016-12-28 23:59:59.999
        System.out.println(DateUtil.getDate("yyyy-MM-dd 23:59:59.999"));
        //指定日期的结束时间:2016-01-23 23:59:59.999
        System.out.println(DateUtil.getEndDateValue("2016-01-23 12:23:35.221"));

        String endtime = DateUtil.getDateyMdHmsS();
        //复杂程序中的执行用时:
        System.out.println(DateUtil.TotalDayHmsS(starttime, endtime));
        // 农历/阴历 略。

code主体部分:

package com.xxx..xxx.xxxx.xx.Util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;


public class DateUtil {

    /*时间计算:计算到天、计算到秒、计算到毫秒*/
    /**
     * <B>方法名:TotalDay(String startDate,String endDate)</B><BR>
     * <B>说明:计算时间天数差</B>
     *
     * @param startDate 开始时间,"yyyy-MM-dd"
     * @param endDate   结束时间,"yyyy-MM-dd"
     * @return String _天
     */
    public static String TotalDay(String startDate, String endDate) {
        SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd");
        Long day = 0L;
        try {
            long end = sdfs.parse(endDate).getTime();
            long str = sdfs.parse(startDate).getTime();
            day = (end - str) / (1000 * 60 * 60 * 24);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return day.intValue() + "天";
    }

    /**
     * <B>方法名:getDateCountDay(Date datevalue, Integer daynum)</B><BR>
     * <B>说明:一个日期的前N天或后N天的日期</B><BR>
     *
     * @param datevalue 日期变量
     * @param daynum    前后N天天数,整数(向前:负整数,向后:正整数)。
     * @return Date
     */
    public static Date getDateCountDay(Date datevalue, Integer daynum) {
        Calendar car = Calendar.getInstance();
        car.setTime(datevalue);
        car.add(Calendar.DATE, daynum);
        return car.getTime();
    }

    /**
     * <B>方法名:getDateCountDay(String datetypeIn,String datevalue, Integer daynum,String datetypeOut)</B><BR>
     * <B>说明:根据指定日期、日期格式、前后天数计算出日期。</B><BR>
     *
     * @param datetypein  日期变量格式。
     * @param datevalue   日期变量。
     * @param daynum      前后N天天数,整数(向前:负整数,向后:正整数)。
     * @param datetypeout 输出,日期格式。
     * @return String
     */
    public static String getDateCountDay(String datetypeIn, String datevalue, Integer daynum, String datetypeOut) {
        SimpleDateFormat sdfin = new SimpleDateFormat(datetypeIn);
        SimpleDateFormat sdfout = new SimpleDateFormat(datetypeOut);
        Calendar car = Calendar.getInstance();
        Date date = null;
        try {
            date = sdfin.parse(datevalue);
        } catch (ParseException e) {
            System.out.println(e.getMessage());
        }
        car.setTime(date);
        car.add(Calendar.DATE, daynum);
        return sdfout.format(car.getTime());
    }

    /**
     * <B>方法名:TotalDayHms(String startDate, String endDate)</B><BR>
     * <B>说明:计算时间差,精确到秒。</B>
     *
     * @param startDate 开始时间,"yyyy-MM-dd HH:mm:ss"
     * @param endDate   结束时间,"yyyy-MM-dd HH:mm:ss"
     * @return String 剩余:_天_小时_分_秒
     */
    public static String TotalDayHms(String startDate, String endDate) {
        SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Long str = 0L, end = 0L;
        try {
            str = sdfs.parse(startDate).getTime();
            end = sdfs.parse(endDate).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //(24*60*60=86400)一天总秒数,60*60=3600 一小时的总秒数
        //相差总毫秒数。
        Long dayes = end - str;
        //相差总秒数。
        Long dayS = dayes / 1000;
        //剩余天数。
        Long day = dayS / 86400;
        //天数外,剩余秒数。
        Long Seconds = dayS - day * 86400;
        //剩余小时数,整数。
        Long hour = Seconds / 3600;
        //除天数、小时数后剩余秒数。
        Long hourEnds = dayS - day * 86400 - hour * 3600;
        //剩余分钟数,整数。
        Long Minutes = hourEnds / 60;
        //剩余秒数。
        Long tdMin = dayS - day * 86400 - hour * 3600 - Minutes * 60;
        return "相差/剩余:" + day + "天" + hour + "小时" + Minutes + "分" + tdMin + "秒";
    }

    /**
     * <B>方法名:TotalDayHmsS(String startDate, String endDate)</B><BR>
     * <B>说明:计算时间差,精确到毫秒。</B>
     *
     * @param startDate 开始时间,"yyyy-MM-dd HH:mm:ss.SSS"
     * @param endDate   结束时间,"yyyy-MM-dd HH:mm:ss.SSS"
     * @return String 剩余:_天_小时_分_秒_毫秒
     */
    public static String TotalDayHmsS(String startDate, String endDate) {
        SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        Long str = 0L, end = 0L;
        try {
            str = sdfs.parse(startDate).getTime();
            end = sdfs.parse(endDate).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Long dayes = end - str;
        Long dayS = dayes / 1000;
        Long day = dayS / 86400;
        Long Seconds = dayS - day * 86400;
        Long hour = Seconds / 3600;
        Long hourEnds = dayS - day * 86400 - hour * 3600;
        Long Minutes = hourEnds / 60;
        Long tdMin = dayS - day * 86400 - hour * 3600 - Minutes * 60;
        //()可略:
        Long millisecond = dayes - (day * 86400 * 1000) - (hour * 3600 * 1000) - (Minutes * 60 * 1000) - (tdMin * 1000);
        return "相差/剩余:" + day + "天" + hour + "小时" + Minutes + "分" + tdMin + "秒" + millisecond + "毫秒";
    }

    /**
     * <B>方法名:getDateIsLeapYear(String value,String datetype)</B><BR>
     * <B>说明:判断输入的日期是否是闰年</B><BR>
     * @param value 日期变量
     * @param datetype 日期格式变量
     * @return Boolean
     */
    public static Boolean getDateIsLeapYear(String value,String datetype) {
        SimpleDateFormat sdf = new SimpleDateFormat(datetype);
        Calendar car = Calendar.getInstance();
        Date date = null;
        try {
            date = sdf.parse(value);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        car.setTime(date);
        Integer year = car.get(Calendar.YEAR);
        if ( year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            return true;
        } else {
            return false;
        }
    }

    /**
    * <B>方法名:getDateIsMonthDay(String value,String datetype)</B><BR>
     *<B>说明:2月合规检查</B><BR>
     * @param value 日期变量
     * @param datetype 日期格式变量
     * @return String 提示2月最后天数
    */
    public static String getDateIsMonthDay(String value,String datetype){
        if(getDateIsLeapYear(value,datetype)){
            return "2月最后一天为:2月29日 (公历)";
        }else{
            return "2月最后一天为:2月28日 (公历)";
        }
    }
    /*时间戳*/

    /**
     * <B>方法名:getDateToMillisecond(String datestr, String datetype)</B><BR>
     * <B>说明:获取指定日期时间戳/获取指定日期毫秒数</B><BR>
     *
     * @param datestr  日期参数 变量
     * @param datetype 日期格式 变量
     * @return Long
     */
    public static Long getDateMillisecond(String datestr, String datetype) {
        SimpleDateFormat sdf = new SimpleDateFormat(datetype);
        Long mil = 0L;
        try {
            mil = sdf.parse(datestr).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return mil;
    }

    /**
     * <B>方法名:getTimeInMillis()</B><BR>
     * <B>说明:获取当前时间戳</B><BR>
     *
     * @return Long
     */
    public static Long getTimeInMillis() {
        return Calendar.getInstance().getTimeInMillis();
    }

    /**
     * <B>方法名:getMillisecondDate(Long numL, String datetype)</B><BR>
     * <B>说明:时间戳转日期/根据毫秒数获取日期</B><BR>
     *
     * @param numL     Long型时间戳,如:1545970996238L
     * @param datetype 日期格式
     * @return String 指定格式日期
     */
    public static String getMillisecondDate(Long numL, String datetype) {
        SimpleDateFormat sdf = new SimpleDateFormat(datetype);
        Long longs = Long.parseLong(String.valueOf(numL));
        return sdf.format(new Date(longs));
    }

    /*日期转换*/

    /**
     * <B>方法名:getDateType(String value)</B><BR>
     * <B>说明:yyyy-MM-dd HH:mm:ss 转 yyyy年M月d日 HH时mm分ss秒 ,日期中月、日含0的,转换后则不含0</B><BR>
     *
     * @param value 日期参数 yyyy-MM-dd HH:mm:ss
     * @return string
     */
    public static String getDateType(String value) {
        String datestr = "";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdft = new SimpleDateFormat("yyyy年M月d日 HH时mm分ss秒");
        try {
            datestr = sdft.format(sdf.parse(value));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return datestr;
    }
    /**
     * <B>方法名:getDateTypeMd(String value)</B><BR>
     * <B>说明:yyyy-MM-dd 转 yyyy年M月d日 ,日期中月、日含0的,转换后则不含0</B><BR>
     *
     * @param value 日期参数 yyyy-MM-dd
     * @return string
     */
    public static String getDateTypeMd(String value) {
        String datestr = "";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdft = new SimpleDateFormat("yyyy年M月d日");
        try {
            datestr = sdft.format(sdf.parse(value));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return datestr;
    }
    /**
     * <B>方法名:getDateTypes(String value)</B><BR>
     * <B>说明:yyyy年MM月dd日 HH时mm分ss秒 转 yyyy-M-d HH:mm:ss ,日期中月、日含0的,转换后则不含0</B><BR>
     *
     * @param value 日期参数 yyyy年MM月dd日 HH时mm分ss秒
     * @return string
     */
    public static String getDateTypes(String value) {
        String datestr = "";
        SimpleDateFormat sdft = new SimpleDateFormat("yyyy-M-d HH:mm:ss");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        try {
            datestr = sdft.format(sdf.parse(value));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return datestr;
    }
    /**
     * <B>方法名:getDateTypeMds(String value)</B><BR>
     * <B>说明:yyyy年MM月dd日 转 yyyy-M-d,日期中月、日含0的,转换后则不含0</B><BR>
     *
     * @param value 日期参数 yyyy年MM月dd日
     * @return string
     */
    public static String getDateTypeMds(String value) {
        String datestr = "";
        SimpleDateFormat sdft = new SimpleDateFormat("yyyy-M-d");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        try {
            datestr = sdft.format(sdf.parse(value));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return datestr;
    }
    /**
     * <B>方法名:</B>getDateToStr(Date value, String datetype)<BR>
     * <B>说明:</B>Date日期转字符串类型日期<BR>
     *
     * @param datetype 自定义日期类型
     * @param date     日期变量
     * @return 返回 String 日期
     */
    public static String getDateToStr(Date date, String datetype) {
        return new SimpleDateFormat(datetype).format(date);
    }

    /**
     * <B>方法名:getStrToDate(String value, String datetype)</B><BR>
     * <B>说明:字符串类型日期转Date日期</B><BR>
     *
     * @param value    日期变量
     * @param datetype 自定义日期类型
     * @return 返回Date日期
     */
    public static Date getStrToDate(String value, String datetype) {
        SimpleDateFormat sdf = new SimpleDateFormat(datetype);
        Date dates = null;
        try {
            dates = sdf.parse(value);
        } catch (ParseException e) {
            System.out.println(e.getMessage());
        }
        return dates;
    }

    /**
     * <B>方法名:getDate(String datetype)</B><BR>
     * <B>说明:根据日期类型返回当前日期</B><BR>
     *
     * @param datetype 日期类型: yyyy-MM-dd HH:mm:ss、yyyy-MM-dd HH:mm:ss.SSS、
     *                 yyyy年MM月dd日 HH时mm分ss秒、yyyy-MM-dd、yyyy年MM月dd日、
     *                 HH:mm:ss、yyyy/MM/dd、yyyy、MM、dd、HH、mm、ss、SSS、
     *                 yyyyMMddHHmmssSSS、yyyy-MM-dd 00:00:00.000、yyyy-MM-dd 23:59:59.999
     * @return 返回String类型日期
     */
    public static String getDate(String datetype) {
        SimpleDateFormat sdf = new SimpleDateFormat(datetype);
        return sdf.format(new Date());
    }

    /**
     * <B>方法名:getDateyMdHms()</B><BR>
     * <B>说明:获取当前日期 </B><BR>
     *
     * @param "yyyy-MM-dd HH:mm:ss "
     * @return string
     */
    public static String getDateyMdHms() {
        return getDate("yyyy-MM-dd HH:mm:ss");
    }

    /**
     * <B>方法名:getDateyMdHmsS()</B><BR>
     * <B>说明:获取当前日期,含毫秒 </B><BR>
     *
     * @param "yyyy-MM-dd HH:mm:ss "
     * @return string
     */
    public static String getDateyMdHmsS() {
        return getDate("yyyy-MM-dd HH:mm:ss.SSS");
    }

    /**
     * <B>方法名:getDateyMd()</B><BR>
     * <B>说明:获取当前日期 </B><BR>
     *
     * @param "yyyy-MM-dd"
     * @return string
     */
    public static String getDateyMd() {
        return getDate("yyyy-MM-dd");
    }

    /**
     * <B>方法名:getDateC()</B><BR>
     * <B>说明:获取当前日期</B><BR>
     *
     * @param "yyyy年MM月dd日 HH时mm分ss秒"
     * @return string
     */
    public static String getDateC() {
        return getDate("yyyy年MM月dd日 HH时mm分ss秒");
    }

    /**
     * <B>方法名:getDateCh()</B><BR>
     * <B>说明:获取当前日期</B><BR>
     *
     * @param "yyyy年MM月dd日"
     * @return string
     */
    public static String getDateCh() {
        return getDate("yyyy年MM月dd日");
    }

    /**
     * <B>方法名:getDateValueyMd(String datevalue)</B><BR>
     * <B>说明:根据指定时间返回yyyy-MM-dd日期</B><BR>
     *
     * @param datevalue 日期变量:
     * @return date 返回日期
     */
    public static Date getDateValueyMd(String datevalue) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return sdf.parse(datevalue);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return new Date();
    }

    /**
     * <B>方法名:getStartDateValue(String value)</B><BR>
     * <B>说明:根据指定日期返回其开始时间</B><BR>
     *
     * @param value 日期变量,如:2018-01-23 12:23:35.221
     * @return String 如:2018-01-23 00:00:00.000
     */
    public static String getStartDateValue(String value) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00.000");
        return sdf.format(getDateValueyMd(value));
    }

    /**
     * <B>方法名:getEndDateValue(String value)</B><BR>
     * <B>说明:根据指定日期返回其结束时间</B><BR>
     *
     * @param value 日期变量,如:2018-01-23 12:23:35.221
     * @return String 如:2018-01-23 23:59:59.999
     */
    public static String getEndDateValue(String value) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 23:59:59.999");
        return sdf.format(getDateValueyMd(value));
    }

    /**
     * <B>方法名:getWeek()</B><BR>
     * <B>说明:星期-中式</B><BR>
     *
     * @return 根据当前日期返回星期数,如:星期一
     */
    public static String getWeek() {
        Calendar car = Calendar.getInstance();
        int weeknum = car.get(Calendar.DAY_OF_WEEK) - 1;
        return getNumToWeek(weeknum);
    }

    /**
     * <B>方法名:getWeekOfDate(String value)</B><BR>
     * <B>说明:星期-中式</B><BR>
     * @param value 日期变量 yyyy-MM-dd
     * @return 根据指定日期返回星期数,如:星期一
     */
    public static  String getWeekOfDate(String value){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar car=Calendar.getInstance();
        Date date=null;
        try {
            date=sdf.parse(value);
        }catch(ParseException e){
            e.printStackTrace();
        }
        car.setTime(date);
        return getNumToWeek(car.get(Calendar.DAY_OF_WEEK)-1);
    }

    /**
     * <B>方法名:getDateWeek()</B><BR>
     * <B>说明:获取当前日期, 格式:yyyy-MM-dd HH:mm:ss 星期</B><BR>
     *
     * @return string
     */
    public static String getDateWeek() {
        return getDate("yyyy-MM-dd HH:mm:ss") + getWeek();
    }

    /**
     * <B>方法名:getWeekDate()</B><BR>
     * <B>说明:获取当前日期,格式:"星期 yyyy-MM-dd HH:mm:ss"</B><BR>
     *
     * @return string
     */
    public static String getWeekDate() {
        return getWeek() + " " + getDate("yyyy-MM-dd HH:mm:ss");
    }

    /**
     * <B>方法名:getDateWeeks()</B><BR>
     * <B>说明:获取当前日期,格式:"yyyy-MM-dd 星期"</B><BR>
     *
     * @return string
     */
    public static String getDateWeeks() {
        return getDate("yyyy-MM-dd") + getWeek();
    }

    /**
     * <B>方法名:getDateWeeks()</B><BR>
     * <B>说明:获取当前日期,格式:"MM月dd日 星期"</B><BR>
     *
     * @return string
     */
    public static String getDateWeekmd() {
        return getDate("MM月dd日") + getWeek();
    }

    /**
     * <B>方法名:getDateWeeks()</B><BR>
     * <B>说明:获取当前日期,格式:"MM-dd 星期"</B><BR>
     *
     * @return string
     */
    public static String getDateWeekmdC() {
        return getDate("MM-dd") + getWeek();
    }

    /**
     * <B>方法名:getDateWeekMdHm()</B><BR>
     * <B>说明:获取当前日期,格式:"MM-dd 星期 HH:mm"</B><BR>
     *
     * @return string
     */
    public static String getDateWeekMdHm() {
        return getDate("MM-dd") + getWeek() + " " + getDate("HH:mm");
    }

    /**
     * <B>方法名:getDateWeekMdHmC()</B><BR>
     * <B>说明:获取当前日期,格式:"MM月dd日 星期 HH:mm"</B><BR>
     *
     * @return string
     */
    public static String getDateWeekMdHmC() {
        return getDate("MM月dd日") + getWeek() + " " + getDate("HH:mm");
    }

    /**
     * <B>方法名:getDateWeekC</B><BR>
     * <B>说明:获取当前日期,格式:"yyyy年MM月dd日 HH时mm分ss秒 星期"</B><BR>
     *
     * @return string
     */
    public static String getDateWeekC() {
        return getDate("yyyy年MM月dd日 HH时mm分ss秒") + getWeek();
    }

    /**
     * <B>方法名:getDateWeekCh</B><BR>
     * <B>说明:获取当前日期,格式: "yyyy年MM月dd日 星期"</B><BR>
     *
     * @return string
     */
    public static String getDateWeekCh() {
        return getDate("yyyy年MM月dd日") + getWeek();
    }

    /**
     * <B>方法名:getWeekCDate</B><BR>
     * <B>说明:获取当前日期,格式: "yyyy年MM月dd日  星期 HH时mm分ss秒"</B><BR>
     *
     * @return string
     */
    public static String getWeekCDate() {
        return getDateWeekCh() + " " + getDate("HH时mm分ss秒");
    }

    /**
     * <B>方法名:getWeekE</B><BR>
     * <B>说明:星期-英式</B><BR>
     *
     * @return 根据当前日期返回星期数,如:Sunday
     */
    public static String getWeekE() {
        Calendar car = Calendar.getInstance();
        int weeknum = car.get(Calendar.DAY_OF_WEEK) - 1;
        return getNumToWeekE(weeknum);
    }

    /**
     * <B>方法名:getWeekEn</B><BR>
     * <B>说明:星期-英式2</B><BR>
     *
     * @return 根据当前日期返回星期数,如:Mon.
     */
    public static String getWeekEn() {
        Calendar car = Calendar.getInstance();
        int weeknum = car.get(Calendar.DAY_OF_WEEK) - 1;
        return getNumToWeekEh(weeknum);
    }

    /**
     * <B>方法名:getWeekOfDateE(String value)</B><BR>
     * <B>说明:星期-英1</B><BR>
     * @param value 日期变量 yyyy-MM-dd
     * @return 根据指定日期返回星期数,如:Sunday
     */
    public static  String getWeekOfDateE(String value){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar car=Calendar.getInstance();
        Date date=null;
        try {
            date=sdf.parse(value);
        }catch(ParseException e){
            e.printStackTrace();
        }
        car.setTime(date);
        return getNumToWeekE(car.get(Calendar.DAY_OF_WEEK)-1);
    }
    /**
     * <B>方法名:getWeekOfDateEn(String value)</B><BR>
     * <B>说明:星期-英2</B><BR>
     * @param value 日期变量 yyyy-MM-dd
     * @return 根据指定日期返回星期数,如:Mon.
     */
    public static  String getWeekOfDateEn(String value){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar car=Calendar.getInstance();
        Date date=null;
        try {
            date=sdf.parse(value);
        }catch(ParseException e){
            e.printStackTrace();
        }
        car.setTime(date);
        return getNumToWeekEh(car.get(Calendar.DAY_OF_WEEK)-1);
    }
    /**
     * <B>方法名:getMonthE</B><BR>
     * <B>说明:月份-英式</B><BR>
     *
     * @return 根据当前日期返回月份数,如:August
     */
    public static String getMonthE() {
        Calendar car = Calendar.getInstance();
        int Monthnum = car.get(Calendar.MONTH);
        return getMonthE(Monthnum);
    }

    /**
     * <B>方法名:getMonthEn</B><BR>
     * <B>说明:月份-英式2</B><BR>
     *
     * @return 根据当前日期返回月份数,如:Aug.
     */
    public static String getMonthEn() {
        Calendar car = Calendar.getInstance();
        int Monthnum = car.get(Calendar.MONTH);
        return getMonthEn(Monthnum);
    }

    /**
     * <B>方法名:getMonthOfDateE(String value)</B><BR>
     * <B>说明:月份-英1</B><BR>
     * @param value 日期变量 yyyy-MM-dd
     * @return 根据指定日期返回月份数,如:August
     */
    public static  String getMonthOfDateE(String value){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar car=Calendar.getInstance();
        Date date=null;
        try {
            date=sdf.parse(value);
        }catch(ParseException e){
            e.printStackTrace();
        }
        car.setTime(date);
        return getMonthE(car.get(Calendar.MONTH));
    }
    /**
     * <B>方法名:getMonthOfDateEn(String value)</B><BR>
     * <B>说明:月份-英2</B><BR>
     * @param value 日期变量 yyyy-MM-dd
     * @return 根据指定日期返回月份数,如:Aug.
     */
    public static  String getMonthOfDateEn(String value){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar car=Calendar.getInstance();
        Date date=null;
        try {
            date=sdf.parse(value);
        }catch(ParseException e){
            e.printStackTrace();
        }
        car.setTime(date);
        return getMonthEn(car.get(Calendar.MONTH));
    }
    /**
     * <B>方法名:getDateE()</B><BR>
     * <B>说明:日期-英版1</B><BR>
     * @return String 如:Wednesday,December 28,2016
    */
    public static String getDateE(){
        return getWeekE()+","+getMonthE()+" "+getDate("dd")+","+getDate("yyyy");
    }
    /**
     * <B>方法名:getDateEn()</B><BR>
     * <B>说明:日期-英版2</B><BR>
     * @return String 如:Wed.Dec.28, 2016
     */
    public static String getDateEn(){
        return getWeekEn()+getMonthEn()+getDate("dd")+", "+getDate("yyyy");
    }
    /**
     * <B>方法名:getDateEng()</B><BR>
     * <B>说明:日期-英版3</B><BR>
     * @return String 如:Dec.28, 2016
     */
    public static String getDateEng(){
        return getMonthEn()+" "+getDate("dd")+", "+getDate("yyyy");
    }

    /**
     * <B>方法名:getDateWeekE(String value)</B><BR>
     * <B>说明:指定日期转英式格式日期。</B><BR>
     * @param value 日期变量 yyyy-MM-dd
     * @return String 如:Sun.Feb.28, 2016
     *
     */
    public static String  getDateWeekE(String value){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar car=Calendar.getInstance();
        Date date=null;
        try {
            date=sdf.parse(value);
        }catch(ParseException e){
            e.printStackTrace();
        }
        car.setTime(date);
        return getWeekOfDateEn(value)+getMonthOfDateEn(value)+car.get(Calendar.DATE)+", "+car.get(Calendar.YEAR);
    }
    /**
     * <B>方法名:getDateWeekEn(String value)</B><BR>
     * <B>说明:指定日期转英式格式日期。</B><BR>
     * @param value 日期变量 yyyy-MM-dd
     * @return String 如:Wednesday,December 28, 2016
     *
     */
    public static String  getDateWeekEn(String value){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar car=Calendar.getInstance();
        Date date=null;
        try {
            date=sdf.parse(value);
        }catch(ParseException e){
            e.printStackTrace();
        }
        car.setTime(date);
        return getWeekOfDateE(value)+","+getMonthOfDateE(value)+" "+car.get(Calendar.DATE)+", "+car.get(Calendar.YEAR);
    }

    /**
     * <B>方法名:getWeekNum(Date date)</B><BR>
     * <B>说明:根据指定日期返回其星期数,周日标识为0 周一标识为1</B><BR>
     *
     * @param date 日期变量
     * @return int 返回其星期数
     */
    public static int getWeekNum(Date date) {
        Calendar car = Calendar.getInstance();
        car.setTime(date);
        return car.get(Calendar.DAY_OF_WEEK);
    }

    /**
     * <B>方法名:getWeekNums(Date date)</B><BR>
     * <B>说明:根据指定日期返回其星期数,周日标识为7 周一标识为1</B><BR>
     *
     * @param date 日期变量
     * @return int 返回其星期数
     */
    public static int getWeekNums(Date date) {
        Calendar car = Calendar.getInstance();
        car.setTime(date);
        int week = car.get(Calendar.DAY_OF_WEEK);
        int weeknum;
        if (week == Calendar.SUNDAY) {
            weeknum = 7;
        } else {
            weeknum = week - 1;
        }
        return weeknum;
    }

    /*
     * 当年第一天
     * */
    public static Date getYearFirstDay() {
        Calendar car = Calendar.getInstance();
        car.set(Calendar.HOUR_OF_DAY, 0);
        car.set(Calendar.MINUTE, 0);
        car.set(Calendar.SECOND, 0);
        car.set(Calendar.MILLISECOND, 0);
        int day = car.getActualMinimum(Calendar.DAY_OF_YEAR);
        car.set(Calendar.DAY_OF_YEAR, day);
        return car.getTime();
    }

    /* 当年最后一天*/
    public static Date getYearLastDay() {
        Calendar car = Calendar.getInstance();
        car.set(Calendar.HOUR_OF_DAY, 23);
        car.set(Calendar.MINUTE, 59);
        car.set(Calendar.SECOND, 59);
        car.set(Calendar.MILLISECOND, 999);
        int day = car.getActualMaximum(Calendar.DAY_OF_YEAR);
        car.set(Calendar.DAY_OF_YEAR, day);
        return car.getTime();
    }


    /*Calendar*/

    /**
     * <B>方法名:getDateToCalendar(Date date)</B><BR>
     * <B>说明:Date转Calendar</B>
     *
     * @param value Calendar日期变量
     * @return String
     */
    public static Calendar getDateToCalendar(Date value) {
        Calendar car = Calendar.getInstance();
        car.setTime(value);
        return car;
    }

    /**
     * <B>方法名:getCalendarToStr(Calendar car, String datetype)</B><BR>
     * <B>说明:Calendar日期转规定格式日期</B>
     *
     * @param car      Calendar日期变量
     * @param datetype 自定义日期类型
     * @return String 返回规定格式的日期
     */
    public static String getCalendarToStr(Calendar car, String datetype) {
        SimpleDateFormat sdf = new SimpleDateFormat(datetype);
        if (car != null) {
            return sdf.format(car.getTime());
        } else {
            return "";
        }
    }

    /**
     * <B>方法名: getCalendarToStr(Calendar car)</B><BR>
     * <B>说明:Calendar日期转yyyy-MM-dd HH:mm:ss</B>
     *
     * @param car Calendar日期变量
     * @return String
     */
    public static String getCalendarToStr(Calendar car) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if (car != null) {
            return sdf.format(car.getTime());
        } else {
            return "";
        }
    }

    /**
     * <B>方法名:getCalendarToStrHm(Calendar car)</B><BR>
     * <B>说明:Calendar日期转yyyy-MM-dd HH:mm</B>
     *
     * @param car Calendar日期变量
     * @return String
     */
    public static String getCalendarToStrHm(Calendar car) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        if (car != null) {
            return sdf.format(car.getTime());
        } else {
            return "";
        }
    }

    /**
     * <B>方法名: getCalendarToStryMd(Calendar car)</B><BR>
     * <B>说明:Calendar日期转yyyy-MM-dd</B>
     *
     * @param car Calendar日期变量
     * @return String
     */
    public static String getCalendarToStryMd(Calendar car) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        if (car != null) {
            return sdf.format(car.getTime());
        } else {
            return "";
        }
    }

    /**
     * <B>方法名:getCalendarHm(Calendar car)</B><BR>
     * <B>说明:Calendar日期转HH:mm</B>
     *
     * @param car Calendar日期变量
     * @return String
     */
    public static String getCalendarHm(Calendar car) {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        if (car != null) {
            return sdf.format(car.getTime());
        } else {
            return "";
        }
    }

    /**
     * <B>方法名: getCalendarHms(Calendar car)</B><BR>
     * <B>说明:Calendar日期转HH:mm:ss</B>
     *
     * @param car Calendar日期变量
     * @return String
     */
    public static String getCalendarHms(Calendar car) {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        if (car != null) {
            return sdf.format(car.getTime());
        } else {
            return "";
        }
    }
    /*Calendar end*/

    public static String getNumToWeek(int weeknum) {
        String[] weekC = {"日", "一", "二", "三", "四", "五", "六"};
        return " 星期" + weekC[weeknum];
    }

    public static String getNumToWeekE(int weeknum) {
        String[] weekE = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
        return weekE[weeknum];
    }

    public static String getNumToWeekEh(int weeknum) {
        String[] weekEn = {"Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."};
        return weekEn[weeknum];
    }
    public static String getMonthE(int monthnum){
        String[] month={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
        return month[monthnum];
    }
    public static String getMonthEn(int monthnum){
        String[] month={"Jan.", "Feb.", "Mar.", "Apr.", "May.", "Jun.", "Jul.", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."};
        return month[monthnum];
    }

}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值