关于CodeJava的学习笔记——5

一、时间类

- jdk1.0 Date 不支持时区
  - java.util.Date
  - java.text.SimpleDateFormat
- jdk1.1 Calendar 日历类 不安全
  - java.util.Calendar
- jdk1.8 LocalDate年月日/LocalTime时分秒/LocalDateTime年月日+时分秒 【时区+安全】
  - java.time.LocalDate/LocalDateTime/LocalTime
  - java.time.format.DateTimeFormatter
  - java.time.Duration

1、Date 不支持时区

1 获取系统当前时间
    Date now = new Date();
2 Date <=> long 毫秒数
    long time = Date对象.getTime();
    Date dd = new Date(long 毫秒数);
3 日期格式化 [Date - SimpleDateFormat]
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    // Date => String
    String str = sdf.format(Date对象);
    // String => Date
    String s1 = "2001-10-01 11:22:33";
    Date d1 = sdf.parse(s1);// throws ParseException

2、Calendar 不安全

Calendar 抽象类 肯定不能直接创建对象
1 获取Calendar对象
    Calendar cc = Calendar.getInstance();
        字段            值
   YEAR             1
   MONTH         2    【get(2)+1】
   DAY_OF_MONTH  5
   DAY_OF_WEEK   7    【get(7)-1】
   HOUR_OF_DAY   11   【24小时制】
   MINUTE         12
   SECOND         13

2 获取某一个字段的内容
    int get(int 字段);
3 修改某一个字段的内容  【不需要接收,调用方法直接改变】
    3.1 修改成指定的值
    Calendar对象.set(int字段,int值);

    3.2 添加/减少
    Calendar对象.add(int字段,正数); // 添加
    Calendar对象.add(int字段,负数); // 减少

4 日期格式化【Calendar => Date => 格式化Date => String】
    4.1 Calendar => Date
    Date dd = Calendar对象.geTime();
    4.2 Date => String
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String str = sdf.format(dd);

3、LocalDate LocalTime LocalDateTime 【支持时区+安全】

1、 获取LocalDate对象

    // 当前
    LocalDate ld = LocalDate.now();
    // 指定
    LocalDate ld = LocalDate.of(年,月,日);
    // 最短:LocalDateTime ldt = LocalDateTime.of(年,月,日,时,分钟)

2 、获取某一个字段

    LocalDate对象.getYear() => int
    LocalDate对象.getMonth() => enum Month()
    LocalDate对象.getMonthValue() => int
    LocalDate对象.getMonth().getValue() => int
    LocalDate对象.getDayOfMonth() => int
    LocalDate对象.getDayOfWeek() => enum DayOfWeek{}
    LocalDate对象.getDayOfWeek().getValue() => int
    // LocalDateTime对象 getHour() [24小时制] getMinute() getSecond()

3、 修改 [需要接收!!!]

    3.1 指定
        LocalDate ld = LocalDate对象.withXxx(long 值);
    3.2 添加/减少
        // plusYears() plusMonths() plusDays()
        LocalDate ld = LocalDate对象.plusXxxs(long 值);        
        LocalDate ld = LocalDate对象.minusXxxs(long 值);     

4 、日期格式化

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    // LocalDate => String
    String str = dtf.format(LocalDate对象);
    // String => LocalDate
    LocalDate ld = LocalDate.parse(String内容,dtf);

    // String => LocalDateTime
    // 格式化器 =》 yyyy-MM-dd HH:mm:ss
    // LocalDateTime ldt = LocalDateTime.parse(字符串,格式化器);

5、 判断时间的先后

    时间1.isBefore(时间2) 判断 时间1是否在时间2之前
    时间1.isAfter(时间2)判断 时间1是否在时间2之后

6、LocalDate特有的方法


  1 判断是否是闰年
      boolean flag = LocalDate对象.isLeapYear();
  2 获取某个月份多少天
      int days = LocalDate对象.lengthOfMonth();
  3 获取某一年多少天
      int days = LocalDate对象.lengthOfYear();
  LocalDateTime l01 = LocalDateTime.now();
  LocalDateTime l02 = LocalDateTime.of(2035,10,1,14,56,12);
 
  // 两个时间的差 【时间需要有“秒”】
  // l02 - l01
  Duration dd = Duration.between(l01,l02);
  // 天数/小时/分钟/秒 =》 返回类型都是long
  dd.toDays() / dd.toHours() / dd.toMinutes() / dd.toSeconds()//用这些方法接时间差,统一单位
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值