Java日期相关操作

作者: Coffeelong | 来源:发表于2017-06-22 14:00 被阅读0次
    1. Date

    大多数方法已经废弃,目前保留且常用的方法如下:

    //获取当前时间
    Date date = new Date();
    //设定时间
    Date date = new Date(long time);
    //获取long类型表示时间
    long time = date.getTime();
    //设定时间
    date.setTime(long time);
    //检测时间是否延迟于when
    boolean result = date.after(Date when);
    //检测时间是否提前于when
    boolean result = date.before(Date when);
    
    2. Calendar

    推荐使用Calendar来进行比较复杂的日期计算,使用方法也相对简单。

    //创建Calendar
    Calendar calendar = Calendar.getInstance();
    //获取时间,返回类型为Date
    Date date = calendar.getTime();
    //设定时间,参数类型为Date
    calendar.setTime(new Date());
    

    通常使用Calendar来对日期进行延后或追溯,例如获取当前日期的前几天或者后几天日期,Calendar提供了便捷的方法可以获取到指定日期,包括月份、星期等具体日期。

    //1. 获取当前日期前三个星期的日期
    Calendar calendar = Calendar.getInstance();
    //-3表示向前推,WEEK_OF_MONTH则表示是以周单位进行日期回溯,
    //Caldendar提供了多种时间单位,可以根据需要使用
    calendar.add(Calendar.WEEK_OF_MONTH, -3);
    Date hisDate = calendar.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    System.out.println("today date:" + sdf.format(new Date()) + "\nhistory week date:" + sdf.format(hisDate));
    //2. 获取当前日期前三个星期的星期五的日期
    calendar.add(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
    hisDate = calendar.getTime();
    System.out.println("today date:" + sdf.format(new Date()) + "\nhistory week date:" + sdf.format(hisDate));
    
    3 . 日期类型转化

    实际应用中日期的习惯表示方式一般为String或Long类型,因此Java中提供了日期类型转化方式。

    //格式自定义,例如:yyyy-MM-dd、yyyy-MM-dd hh:mm:ss
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    String date = sdf.format(hisDate);
    //将自己的日期格式转换为Date类型
    String time = "20170615";
    date = sdf.parse(time);
    

    Java提供了Date类型与String类型的相互转换,但是实际中Date类型所能计算的日期功能有限,因此一般使用Calendar进行复杂的日期计算,然后将Calendar转换为Date,再进一步将Date转换为自己需要的格式类型。

    //日期类型转换方式
    Date   -------------> String  use SimpleDateFormat format(Date date)
    Date   <------------- String  use SimpleDateFormat parse(String date)
    
    Calendar -----------> Date use Calendar getTime()
    Calendar <----------- Date use Calendar setTime(Date date)
    

    相关文章

      网友评论

        本文标题:Java日期相关操作

        本文链接:https://www.haomeiwen.com/subject/juhfcxtx.html