日期获取和转化工具类

package timeDate;


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

/**
 * 项目名:j
 * Created by fu.
 * Created at 
 * 描述:时间日期的处理和截取
 */
public class DateAndTime {
    public static String DATE_FORMAT = "yyyy-MM-dd";

    public static String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

    public static String DATE_FORMAT_CHINESE = "yyyy年M月d日";
    //获取当前日期
    public  String getCurrentDate(){
        String date=null;
        String d=null;
        SimpleDateFormat df=new SimpleDateFormat(DATE_FORMAT);
        date=df.format(new Date());
        d=date+" "+"00:00:00";
        return d;
    }
    //获取当前日期和时间
    public  String getTimeAndDate(){
        SimpleDateFormat td=new SimpleDateFormat(DATE_TIME_FORMAT);
        return td.format(new Date());
    }
    //获取时间
    public static String getTime(){
        String time=null;
        SimpleDateFormat ti=new SimpleDateFormat(DATE_FORMAT_CHINESE);
        return ti.format(new Date());
    }
    //将字符串日期转化为日期格式
    public static Date StringToData(String datastr,String dataformat){
        Date date=new Date();
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(dataformat);
        try {
            date=simpleDateFormat.parse(datastr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
    //将日期格式转化为字符串格式
    public static String dataToString(Date date,String dataformat){
        String datastr=null;
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(dataformat);
        datastr=simpleDateFormat.format(date);
        return dataformat;
    }
    /**
     * 获取日期的DAY值
     *
     *
     * @param date
     *      输入日期
     * @return
     *
     */
    public static int getDayOfDate(Date date) {
        int d = 0;
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);
        d = cd.get(Calendar.DAY_OF_MONTH);
        return d;
    }
    /**
     * 获取日期的MONTH值
     *
     * @param date
     *      输入日期
     * @return
     *
     */
    public static int getMonthOfDate(Date date) {
        int m = 0;
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);
        m = cd.get(Calendar.MONTH) + 1;
        return m;
    }
    /**
     * 获取日期的YEAR值
     * @param date
     *      输入日期
     * @return
     *
     */
    public static int getYearOfDate(Date date) {
        int y = 0;
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);
        y = cd.get(Calendar.YEAR);
        return y;
    }
    /**
     * 获取星期几
     * @param date
     *      输入日期
     * @return
     *
     */
    public static int getWeekOfDate(Date date) {
        int wd = 0;
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);
        wd = cd.get(Calendar.DAY_OF_WEEK) - 1;
        return wd;
    }
    /**
     * 获取输入日期的当月第一天
     *
     *
     * @param date
     *      输入日期
     * @return
     *
     */
    public static Date getFirstDayOfMonth(Date date) {
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);
        cd.set(Calendar.DAY_OF_MONTH, 1);
        return cd.getTime();
    }
    /**
     * 获得输入日期的当月最后一天
     *
     * @param date
     */
//    public static Date getLastDayOfMonth(Date date) {
//        return DateUtils.addDay(DateUtils.getFirstDayOfMonth(DateUtils.addMonth(date, 1)), -1);
//    }
    /**
     * 根据整型数表示的年月日,生成日期类型格式
     *
     * @param year
     *      年
     * @param month
     *      月
     * @param day
     *      日
     * @return
     *
     */
    public static Date getDateByYMD(int year, int month, int day) {
        Calendar cd = Calendar.getInstance();
        cd.set(year, month-1, day);
        return cd.getTime();
    }
    /**
     * 获取年周期对应日
     *
     * @param date
     *      输入日期
     * @param iyear
     *      年数  負數表示之前
     * @return
     *
     */
    public Date getYearCycleOfDate(Date date, int iyear) {
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);

        cd.add(Calendar.YEAR, iyear);

        return cd.getTime();
    }

    /**
     * 计算 fromDate 到 toDate 相差多少年
     *
     * @param fromDate
     * @param toDate
     * @return 年数
     *
     */
    public static int getYearByMinusDate(Date fromDate, Date toDate) {
        Calendar df=Calendar.getInstance();
        df.setTime(fromDate);

        Calendar dt=Calendar.getInstance();
        dt.setTime(toDate);

        return dt.get(Calendar.YEAR)-df.get(Calendar.YEAR);
    }
    /**
     * 计算 fromDate 到 toDate 相差多少个月
     *
     * @param fromDate
     * @param toDate
     * @return 月数
     *
     */
    public static int getMonthByMinusDate(Date fromDate, Date toDate) {
        Calendar df=Calendar.getInstance();
        df.setTime(fromDate);

        Calendar dt=Calendar.getInstance();
        dt.setTime(toDate);

        return dt.get(Calendar.YEAR)*12+dt.get(Calendar.MONTH)-
                (df.get(Calendar.YEAR)*12+df.get(Calendar.MONTH));
    }
    /**
     * 计算 fromDate 到 toDate 相差多少天
     *
     * @param fromDate
     * @param toDate
     * @return 天数
     *
     */
//    public static long getDayByMinusDate(Object fromDate, Object toDate) {
//
//        Date f=DateUtils.chgObject(fromDate);
//
//        Date t=DateUtils.chgObject(toDate);
//
//        long fd=f.getTime();
//        long td=t.getTime();
//
//        return (td-fd)/(24L * 60L * 60L * 1000L);
//    }
    /**
     * 从身份证中获取出生日期
     *
     * @param idno
     *      身份证号码
     * @return
     *
     */
    public static String getBirthDayFromIDCard(String idno) {
        Calendar cd = Calendar.getInstance();
        if (idno.length() == 15) {
            cd.set(Calendar.YEAR, Integer.valueOf("19" + idno.substring(6, 8))
                    .intValue());
            cd.set(Calendar.MONTH, Integer.valueOf(idno.substring(8, 10))
                    .intValue() - 1);
            cd.set(Calendar.DAY_OF_MONTH,
                    Integer.valueOf(idno.substring(10, 12)).intValue());
        } else if (idno.length() == 18) {
            cd.set(Calendar.YEAR, Integer.valueOf(idno.substring(6, 10))
                    .intValue());
            cd.set(Calendar.MONTH, Integer.valueOf(idno.substring(10, 12))
                    .intValue() - 1);
            cd.set(Calendar.DAY_OF_MONTH,
                    Integer.valueOf(idno.substring(12, 14)).intValue());
        }
//        return DateUtils.dateToString(cd.getTime());
        return null;
    }

    /**
     * 在输入日期上增加(+)或减去(-)天数
     *
     * @param date
     *      输入日期
     * @param iday
     *      要增加或减少的天数
     */
    public static Date addDay(Date date, int iday) {
        Calendar cd = Calendar.getInstance();

        cd.setTime(date);

        cd.add(Calendar.DAY_OF_MONTH, iday);

        return cd.getTime();
    }

    /**
     * 在输入日期上增加(+)或减去(-)月份
     *
     * @param date
     *      输入日期
     * @param imonth
     *      要增加或减少的月分数
     */
    public  Date addMonth(Date date, int imonth) {
        Calendar cd = Calendar.getInstance();

        cd.setTime(date);

        cd.add(Calendar.MONTH, imonth);

        return cd.getTime();
    }

    /**
     * 在输入日期上增加(+)或减去(-)年份
     *
     * @param date
     *      输入日期
     * @param iyear
     *      要增加或减少的年数
     */
    public static Date addYear(Date date, int iyear) {
        Calendar cd = Calendar.getInstance();

        cd.setTime(date);

        cd.add(Calendar.YEAR, iyear);

        return cd.getTime();
    }

    /**
     * 將OBJECT類型轉換為Date
     * @param date
     * @return
     */
    public static Date chgObject(Object date){

        if(date!=null&&date instanceof Date){
            return (Date)date;
        }

        if(date!=null&&date instanceof String){
            return null;
//            return DateUtils.stringToDate((String)date);
        }

        return null;

    }

//    public static long getAgeByBirthday(String date){
//
//        Date birthday = stringToDate(date, "yyyy-MM-dd");
//        long sec = new Date().getTime() - birthday.getTime();
//
//        long age = sec/(1000*60*60*24)/365;
//
//        return age;
//    }
    //短信验证调用的接口Content-type:application/x-www-form-urlencoded
    //Content-type:application/x-www-form-urlencoded
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值