Date、Calendar、LocalDate的运用总结

一、Date

/*
 * Date类
 * 1.java.util.Date
 * 2.Date --> long , long -->  Date
 */
public class DateDemo {

    public static void main(String[] args) {
        //获得当前时间
        Date now = new Date();
        //Date --> long
        long nowTime = now.getTime();
        System.out.println("now = "+now);
        System.out.println("nowTime = "+nowTime);

        System.out.println("-------------------");
        //获得当前时间
        long l = System.currentTimeMillis();
        //long -->  Date
        Date date = new Date(l);
        System.out.println("l = "+l);
        System.out.println("date = "+date);
    }

}

运行结果:

now = Tue Oct 19 20:28:01 CST 2021
nowTime = 1634646481106
-------------------
l = 1634646481134
date = Tue Oct 19 20:28:01 CST 2021

Process finished with exit code 0

二、Calendar

/* Calendar
 * 1.java.util.Calendar类
 * 2.get(常量)     获取年月日、时分秒、星期
 * 3.set(常量,值)  设置年月日、时分秒、星期
 * 4.add(常量,值)  追加指定的时间
 */

public class CalendarDemo {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        get(c);
        System.out.println(set(c,2000,6,9));
        add(c , 1);
    }

    //获取年月日、时分秒、星期
    public static void get(Calendar c){
        //get(日历类的常量)
        System.out.println("年:"+c.get(Calendar.YEAR));
        System.out.println("月:"+(c.get(Calendar.MONTH)+1));
        System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
        System.out.println("时:"+c.get(Calendar.HOUR));
        System.out.println("分:"+c.get(Calendar.MINUTE));
        System.out.println("秒:"+c.get(Calendar.SECOND));
        System.out.println(getWeek(c.get(Calendar.DAY_OF_WEEK)));
    }

    //设置年月日
    public static Calendar set(Calendar c,int year,int month,int day){
        //set(日历类的常量 ,设置的时间数据 )
        //设置年
        c.set(Calendar.YEAR , year);
        //设置月
        c.set(Calendar.MONTH , month-1);
        //设置日期
        c.set(Calendar.DAY_OF_MONTH , day);
        //根据指定的年月日,输出对应的星期
        System.out.println(getWeek(c.get(Calendar.DAY_OF_WEEK)));
        return c;
    }

    //追加时间
    public static void add(Calendar c,int month){
        //追加指定的时间 add(追加的时间单位 , 追加的时间数据)
        c.add(Calendar.MONTH , month);

        System.out.println("年:"+c.get(Calendar.YEAR));
        System.out.println("月:"+(c.get(Calendar.MONTH)+1));
        System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
        System.out.println(getWeek(c.get(Calendar.DAY_OF_WEEK)));
    }


    public static String getWeek(int w){  //w 1-7
        String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        //                   0        1       2         3       4       5       6
        return weeks[w-1];
    }
}

运行结果:

年:2021
月:10
日:19
时:8
分:29
秒:11
星期二
星期五
java.util.GregorianCalendar[time=960553751457,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2000,MONTH=5,WEEK_OF_YEAR=24,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=161,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=8,HOUR_OF_DAY=20,MINUTE=29,SECOND=11,MILLISECOND=457,ZONE_OFFSET=28800000,DST_OFFSET=0]
年:2000
月:7
日:9
星期日

 三、LocalDate

/* LocalDate类、LocalDateTime类、LocalTime类
 * 1.java.time.LocalDate
 * 2.JDK1.8后,线程安全的时间类
 */
public class LocalDateDemo {

    public static void main(String[] args) {
        //static LocalDate now() 获取当期时间
        LocalDate now = LocalDate.now();
        System.out.println("now = "+now);

        //static LocalDate of(int year, int month, int dayOfMonth) 设置年月日
        LocalDate localDate = LocalDate.of(2019, 9, 9);
        System.out.println("localDate = "+localDate);

        //int compareTo(ChronoLocalDate other)  将此日期与另一个日期进行比较。
        System.out.println("compareTo = "+localDate.compareTo(now));

        //boolean equals(Object obj)  检查此日期是否等于另一个日期。
        System.out.println("equals = "+now.equals(localDate));

        System.out.println("==============getXxx()获取日期===================");
        //int getDayOfMonth()  获取月字段的一天
        System.out.println("一个月中的第"+now.getDayOfMonth()+"天");
        //DayOfWeek getDayOfWeek()  获取星期域,这是一个枚举 DayOfWeek。
        System.out.println("星期:"+now.getDayOfWeek());
        //int getDayOfYear()  获取一年的日子。
        System.out.println("一年中的第"+now.getDayOfYear()+"天");
        //int getMonthValue()  从1到12得到一个月的时间字段。
        System.out.println("月份:"+now.getMonthValue());
        //int getYear()  获取年度字段。
        System.out.println("年:"+now.getYear());

        //boolean isLeapYear()  检查,如果今年是闰年,根据ISO预期历法系统规则。
        System.out.println(now.isLeapYear());  //false不是闰年
        System.out.println(localDate.isLeapYear());

        System.out.println("-----------获取月份长度/年份长度--------------");
        //int lengthOfMonth()  返回此日期所表示的月份的长度。
        //int lengthOfYear()   返回此日期所表示的年份的长度。
        System.out.println("localDate指定的月份的长度"+localDate.lengthOfMonth());
        System.out.println("now指定的年份的长度"+now.lengthOfYear());

        System.out.println("-----------minus减去 / plus加上--------------");
        //LocalDate minus(long amountToSubtract, TemporalUnit unit) 返回此日期的一个副本,用指定的金额减去。
        //LocalDate minusDays(long daysToSubtract) 返回一份本 LocalDate与指定的天数减去。
        //LocalDate minusMonths(long monthsToSubtract) 返回一份本 LocalDate与指定期个月减去。
        //LocalDate minusWeeks(long weeksToSubtract) 返回一份本 LocalDate在周中减去指定的时间。
        //LocalDate minusYears(long yearsToSubtract) 返回一份本 LocalDate与指定期在年中减去。
        System.out.println("将now时间减去一年:"+now.minusYears(1));
        //minus(时间的数据 , 时间单位)
        System.out.println(now.minus(9, ChronoUnit.DAYS));   //ChronoUnit.DAYS 天数


        //LocalDate plus(long amountToAdd, TemporalUnit unit) 返回此日期的一个副本,添加指定的金额
        //LocalDate plusDays(long daysToAdd) 返回一份本 LocalDate与指定的天数增加。
        //LocalDate plusMonths(long monthsToAdd) 返回一份本 LocalDate在月期添加指定的。
        //LocalDate plusWeeks(long weeksToAdd) 返回一份本 LocalDate在周指定期间补充。
        //LocalDate plusYears(long yearsToAdd) 返回一份本 LocalDate年指定期间补充。
        System.out.println("将now时间加上一个星期:"+now.plusWeeks(1));
        //plus(时间的数据, 时间单位)
        System.out.println(now.plus(3,ChronoUnit.YEARS));   //ChronoUnit.YEARS  年份

        System.out.println("-----------parse 解析器--------------");
        //static LocalDate parse(CharSequence text) 获得 LocalDate实例从一个文本字符串,如 2007-12-03。
        LocalDate parse1 = LocalDate.parse("2019-09-09");
        System.out.println("parse1 = "+parse1);
        //static LocalDate parse(CharSequence text, DateTimeFormatter formatter) 获得 LocalDate实例从使用特定格式的文本字符串。
        LocalDate parse2 = LocalDate.parse("2020/12/12", DateTimeFormatter.ofPattern("yyyy/MM/dd"));
        System.out.println("parse2 = "+parse2);

        //long toEpochDay() 将此日期转换为新纪元日。
        System.out.println("toEpochDay() : "+now.toEpochDay());

        //String toString() 输出该日期作为 String,如 2007-12-03。
        System.out.println("toString():"+now.toString());

        //long until(Temporal endExclusive, TemporalUnit unit) 计算时间的量,直到指定单元的另一个日期为止。
        System.out.println("计算指定日期的差值:"+now.until(localDate ,ChronoUnit.DAYS));

        System.out.println("--------------with 替换时间----------------");
        //LocalDate with(TemporalField field, long newValue) 将此日期的一个副本与指定的字段设置为一个新值。
        //LocalDate withDayOfMonth(int dayOfMonth) 返回此日期的副本与月更改日期。
        //LocalDate withDayOfYear(int dayOfYear) 返回此日期的副本与一年的日期更改。
        //LocalDate withMonth(int month) 返回此日期的副本与更改的月份。
        //LocalDate withYear(int year) 返回此日期的副本与年更改。
        System.out.println("now = "+now);
        System.out.println("withYear替换年 = "+now.withYear(2020));
        System.out.println("withMonth替换月 = "+now.withMonth(3));
        System.out.println("withDayOfMonth替换日 = "+now.withDayOfMonth(21));
    }

}

运行结果:

now = 2021-10-19
localDate = 2019-09-09
compareTo = -2
equals = false
==============getXxx()获取日期===================
一个月中的第19天
星期:TUESDAY
一年中的第292天
月份:10
年:2021
false
false
-----------获取月份长度/年份长度--------------
localDate指定的月份的长度30
now指定的年份的长度365
-----------minus减去 / plus加上--------------
将now时间减去一年:2020-10-19
2021-10-10
将now时间加上一个星期:2021-10-26
2024-10-19
-----------parse 解析器--------------
parse1 = 2019-09-09
parse2 = 2020-12-12
toEpochDay() : 18919
toString():2021-10-19
计算指定日期的差值:-771
--------------with 替换时间----------------
now = 2021-10-19
withYear替换年 = 2020-10-19
withMonth替换月 = 2021-03-19
withDayOfMonth替换日 = 2021-10-21

Process finished with exit code 0

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值