开发者

JDK8时间相关类超详细总结(含多个实例)

开发者 https://www.devze.com 2023-01-20 10:23 出处:网络 作者: Alita11101_
目录一、带时区的时间1.获取当前时间对象(带时区)2.获取指定的时间对象(带时区)1/年月日时分秒纳秒方式指定3.通过Instant + 时区的方式指定获取时间对象4.修改时间二、DateTimeFormatter三、LocalDate1. 获取当前时间
目录
  • 一、带时区的时间
    • 1.获取当前时间对象(带时区)
    • 2.获取指定的时间对象(带时区)1/年月日时分秒纳秒方式指定
    • 3.通过Instant + 时区的方式指定获取时间对象
    • 4.修改时间
  • 二、DateTimeFormatter
    • 三、LocalDate
      • 1. 获取当前时间的日历对象(包含年月日)
      • 2.获取指定的时间的日历对象
    • 四、LocalTime
      • 1.获取本地时间的日历对象(包含时分秒)
      • 2.开发者_Go学习is系列的方法
      • 3.with系列的方法
      • 4.plus系列的方法
    • 五、LocalDateTime
      • 1.当前时间的的日历对象(包含年月日时分秒)
      • 2.获取日:当年的第几天
      • 3.获取星期
      • 4.获取月份
    • 六、结语

      一、带时区的时间

      1.获取当前时间对象(带时区)

      import Java.time.ZonedDateTime;
      public class demo1 {
          public static void main(String[] args) {
              
      	    ZonedDateTime now = ZonedDateTime.now();
              System.out.println(now);
            
          }
      }

      2023-01-13T19:24:18.389+08:00[Asia/Shanghai]

      2.获取指定的时间对象(带时区)1/年月日时分秒纳秒方式指定

      import java.time.Instant;
      public class demo1 {
          public static void main(String[] args) {
              
      		ZonedDateTime time1 = ZonedDateTime.of(2023, 1, 1, 8, 30, 0, 0, ZoneId.of("Asia/Shanghai"));
              System.out.println(time1);
            
          }
      }

      2023-01-01T08:30+08:00[Asia/Shanghai]

      3.通过Instant + 时区的方式指定获取时间对象

      import java.time.Instant;
      public class demo1 {
          public static void main(String[] args) {
              Instant instant = Instant.ofEpochMilli(0L);
      		ZoneId zoneId = ZoneId.of("Asia/Shanghai");
      		ZonedDateTime time2 = ZonedDateTime.ofInstant(instant, zoneId);
      		System.out.println(time2);
            
          }
      }

      1970-01-01T08:00+08:00[Asia/Shanghai]

      4.修改时间

      import java.time.Instant;
      import java.time.ZoneId;
      import java.time.ZonedDateTime;
      
      public class Demo8 {
          public static void www.devze.commain(String[] args) {
              Instant instant = Instant.ofEpochMilli(0L);
              ZoneId zoneId = ZoneId.of("Asia/Shanghai");
              ZonedDateTimephp time2 = ZonedDateTime.ofInstant(instant, zoneId);
              ZonedDateTime time3 = time2.wihttp://www.devze.comthYear(2000);
              System.out.println(time3);
      
              ZonedDateTime time4 = time3.minusYears(1);
              System.out.println(time4);
      
              ZonedDateTime time5 = time4.plusYears(1);
              System.out.println(time5);
          }
      }

      2000-01-01T08:00+08:00[Asia/Shanghai]

      1999-01-01T08:00+08:00[Asia/Shanghai]

      2000-01-01T08:00+08:00[Asia/Shanghai]

      二、DateTimeFormatter

      import java.time.Instant;
      import java.time.ZoneId;
      import java.time.ZonedDateTime;
      import java.time.format.DateTimeFormatter;
      //获取时间对象
      ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
      
      // 解析/格式化器
      DateTimeFormatter dtf1=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm;ss EE a");
      // 格式化
      System.out.println(dtf1.format(time));
      

      2023-01-14 23:55;55 星期六 下午

      三、LocalDate

      1. 获取当前时间的日历对象(包含年月日)

      //1.获取当前时间的日历对象(包含 年月日)
      LocalDat编程客栈e nowDate = LocalDate.now();
      //System.out.println("今天的日期:" + nowDate);
      

      2.获取指定的时间的日历对象

      LocalDate ldDate = LocalDate.of(2023, 1, 1);
      System.out.println("指定日期:" + ldDate);
      
      System.out.println("=============================");
      
      //3.get系列方法获取日历中的每一个属性值//获取年
      int year = ldDate.getYear();
      System.out.println("year: " + year);
      //获取月//方式一:
      Month m = ldDate.getMonth();
      System.out.println(m);
      System.out.println(m.getValue());
      
      //方式二:
      int month = ldDate.getMonthValue();
      System.out.println("month: " + month);
      
      
      //获取日
      int day = ldDate.getDayOfMonth();
      System.out.println("day:" + day);
      
      //获取一年的第几天
      int dayofYear = ldDate.getDayOfYear();
      System.out.println("dayOfYear:" + dayofYear);
      
      //获取星期
      DayOfWeek dayOfWeek = ldDate.getDayOfWeek();
      System.out.println(dayOfWeek);
      System.out.println(dayOfWeek.getValue());
      
      //is开头的方法表示判断
      System.out.println(ldDate.isBefore(ldDate));
      System.out.println(ldDate.isAfter(ldDate));
      
      //with开头的方法表示修改,只能修改年月日
      LocalDate withLocalDate = ldDate.withYear(2000);
      System.out.println(withLocalDate);
      
      //minus开头的方法表示减少,只能减少年月日
      LocalDate minusLocalDate = ldDate.minusYears(1);
      System.out.println(minusLocalDate);
      
      //plus开头的方法表示增加,只能增加年月日
      LocalDate plusLocalDate = ldDate.plusDays(1);
      System.out.println(plusLocalDate);

      四、LocalTime

      1.获取本地时间的日历对象(包含时分秒)

      LocalTime nowTime = LocalTime.now();
      System.out.println("今天的时间:" + nowTime);
      
      int hour = nowTime.getHour();//时
      System.out.println("hour: " + hour);
      
      int minute = nowTime.getMinute();//分
      System.out.println("minute: " + minute);
      
      int second = nowTime.getSecond();//秒
      System.out.println("second:" + second);
      
      int nano = nowTime.getNano();//纳秒
      System.out.println("nano:" + nano);
      System.out.println("------------------------------------");
      System.out.println(LocalTime.of(8, 20));//时分
      System.out.println(LocalTime.of(8, 20, 30));//时分秒
      System.out.println(LocalTime.of(8, 20, 30, 150));//时分秒纳秒
      LocalTime mTime = LocalTime.of(8, 20, 30, 150);
      

      2.is系列的方法

      System.out.println(nowTime.isBefore(mTime));
      System.out.println(nowTime.isAfter(mTime));
      

      3.with系列的方法

      这个系列的方法有局限性,只能修改时、分、秒

      System.out.println(nowTime.withHour(10));
      

      4.plus系列的方法

      这个系列的方法有局限性,只能修改时、分、秒

      System.out.println(nowTime.plusHours(10));
      

      五、LocalDateTime

      1.当前时间的的日历对象(包含年月日时分秒)

      LocalDateTime nowDateTime = LocalDateTime.now();
      
      System.out.println("今天是:" + nowDateTime);//今天是:
      System.out.println(nowDateTime.getYear());//年
      System.out.println(nowDatepythonTime.getMonthValue());//月
      System.out.println(nowDateTime.getDayOfMonth());//日
      System.out.println(nowDateTime.getHour());//时
      System.out.println(nowDateTime.getMinute());//分
      System.out.println(nowDateTime.getSecond());//秒
      System.out.println(nowDateTime.getNano());//纳秒
      

      2.获取日:当年的第几天

      System.out.println("dayofYear:" + nowDateTime.getDayOfYear());
      

      3.获取星期

      System.out.println(nowDateTime.getDayOfWeek());
      System.out.println(nowDateTime.getDayOfWeek().getValue());
      

      4.获取月份

      System.out.println(nowDateTime.getMonth());
      System.out.println(nowDateTime.getMonth().getValue());
      
      LocalDate ld = nowDateTime.toLocalDate();
      System.out.println(ld);
      
      LocalTime lt = nowDateTime.toLocalTime();
      System.out.println(lt.getHour());
      System.out.println(lt.getMinute());
      System.out.println(lt.getSecond());
      

      六、结语

      到此这篇关于JDK8时间相关类超详细总结的文章就介绍到这了,更多相关JDK8时间相关类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号