java中datetime数据类型,java @date

  java中datetime数据类型,java @date

  本文主要介绍爪哇日期日期类型,以及日历的怎么获取时间,然后写成时间工具类里面有下面这些方法:

  -时间转字符串(有默认时间格式,带时间格式)- 字符串转时间(有默认时间格式,带时间格式)- 计算两个日期之间相差的天数-计算当前时间多少天以后的日期-判断是否是日期格式代码

  很多说明都注释在代码上:

  包日期演示;导入Java。文字。简单的日期格式;导入Java。util。日历;导入Java。util。日期;导入Java。util。正则表达式。图案;/*** 日期工具*/public class DateUtil { private final static String A= yyyy-MM-DD ;//日期格式私人决赛静态字符串b= yyyy-MM-DD hh :MM : ss ;//日期格式私人决赛静态字符串c= yyyy/MM/DD hh :MM : ss ;//日期格式私有最终静态字符串exp=((^((1[8-9]\d{2})([2-9]\d{3}))([-\/\._])(10120?[13578])([-\/\._])(3[01][12][0-9]0?[1-9])$)(^((1[8-9]\d{2})([2-9]\d{3}))([-\/\._])(110?[469])([-\/\._])(30[12][0-9]0?[1-9])$)(^((1[8-9]\d{2})([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]1[0-9]0?[1-9])$)(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$));/** * 时间类型转字符串固定返回日期为yyyy-MM-DD * @ param Date * @ return String */public static String getDateToString(Date Date)引发异常{字符串s;简单日期格式sft=新的简单日期格式(A);//格式时间对象s=sft.format(日期);返回s;} /** * 时间类型转字符串不固定日期格式* @ param Date * @ param format * @ return String */public static String getDteToString(Date Date,String格式)抛出异常{字符串s;SimpleDateFormat sft=new SimpleDateFormat(format);//格式时间对象s=sft.format(日期);返回s;} /** * 字符串时间转时间类型固定日期格式yyyy-MM-dd * @param文本字符串时间* @ return Date * @ throws Exception */public static Date getstring ote(String text)throws Exception { simple Date format SDF=new simple Date format(A);//格式时间对象日期日期=SDF。解析(文本);返回日期;} /** * 字符串时间转时间类型不固定时

  间格式     * @param text 时间字符串     * @param format 日期格式     * @return Date     * @throws Exception     */    public static Date gettringToDate(String text,String format) throws Exception{        SimpleDateFormat sdf=new SimpleDateFormat(format);//格式时间对象        Date date=sdf.parse(text);        return date;    }    /**     *计算两个日期之间相差的天数     * @param a 第一个日期时间     * @param b 第二个日期时间     * @return     * @throws Exception     */    public static long getDaysBetweenTwoDates(Date a, Date b) throws Exception {        //判断这两个时间的大小        if(a.equals(b)) return 0;        if(!a.before(b)){//保证返回的值为正数            Date temp;            temp=a;            a=b;            b=temp;        }        Calendar c = Calendar.getInstance();//获取calendar对像        c.setTime(a);//设置时间 date  转 calendar 类型        long t1 = c.getTimeInMillis();//获取时间戳        c.setTime(b);        long t2 = c.getTimeInMillis();        //计算天数        long days = (t2 - t1) / (24 * 60 * 60 * 1000);        return days;    }    /**     * 计算当前时间多少天以后的日期     * @param currentDate 当前时间     * @param distance 距离多少天     * @return     */    public static Date getNextDasByNumber(Date currentDate,int distance)throws Exception{        Calendar calendar=Calendar.getInstance();//获取日历对象        calendar.setTime(currentDate);//设置当前时间 date  转 calendar 类型        calendar.add(Calendar.DATE,distance);//计算离当前时间以后的日期        Date date=calendar.getTime();//calendar 转 date  类型        return date;    }    /**     * 判断是否是日期格式     * @param date  字符串     * @return     */    public static boolean isDate(String date){       // 创建 Pattern 对象 java正则表达式对象        Pattern r = Pattern.compile(exp);        boolean flag =  r.matcher(date).matches();//判断它格式是否正确        return flag;    }    public static void main(String []arg){        Calendar calendar=Calendar.getInstance();        try {            //验证计算两个日期之间相差的天数            long i= getDaysBetweenTwoDates(getStringToDate("2017-02-11"),getStringToDate("2017-03-11"));            System.out.println("计算(2017-02-11,2017-03-11)两个日期之间相差的天数:"+i);            Date d= getNextDasByNumber(getStringToDate("2017-02-11"),28);            System.out.println("计算(2017-02-11)时间128天以后的日期:"+getDateToString(d));            boolean f= isDate("2017-02-11");            System.out.println("判断2017-02-11日期格式是否正确:"+f);            boolean f1= isDate("20170211");//正则表达式不支持这种            System.out.println("判断20170211日期格式是否正确:"+f1);            boolean f2= isDate("2017/02/11");            System.out.println("判断2017/02/11日期格式是否正确:"+f2);            System.out.println();        } catch (Exception e) {            e.printStackTrace();        }    }}结果

  

 

  

总结

Calendar比Java原有的Date更加强大些,它们之间也可以相互转换 ,不过用Calendar,小心获取月份时,它是阴历–得加一才是我们正常的月份;就说这么多了,都是干货哈!!!,大家有不明白的或者有新的需求都可提出来,一起讨论讨论;

 

  到此这篇关于Java Date时间类型的操作实现的文章就介绍到这了,更多相关Java Date类内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: