加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

小白篇:JDK8的日 期处理API-必知必备

发布时间:2022-12-06 12:39:10 所属栏目:语言 来源:
导读:  public static Instant now()

  public static Instant now(Clock clock)

  //根据毫秒生成Instant

  public static Instant ofEpochMilli(long epochMilli)

  //根据秒生成Instant,

  public static Instant now()
 
  public static Instant now(Clock clock)
 
  //根据毫秒生成Instant
 
  public static Instant ofEpochMilli(long epochMilli)
 
  //根据秒生成Instant,外附加纳秒单位的数值
 
  public static Instant ofEpochSecond(long epochSecond, long nanoAdjustment)
 
  //text的格式:2021-01-04T06:37:53.743Z
 
  public static Instant parse(CharSequence text)  
 
  //计算与Temporal相隔的时间差,以TemporalUnit为单位度量
 
  public long until(Temporal endExclusive, TemporalUnit unit)  
 
  时间戳的创建
 
  Instant instant = Instant.now();
 
  System.out.println(instant);
 
  instant = Instant.now(Clock.systemDefaultZone());
 
  System.out.println(instant);
 
  //和Date的相互转换
 
  instant = Instant.ofEpochMilli(new Date().getTime());
 
  System.out.println(instant);
 
  //根据字符串生成时间,支持到纳秒级别
 
  instant = Instant.parse("1995-10-23T10:12:35.999999999Z");
 
  System.out.println(instant);
 
  //根据秒和偏差的纳秒 创建时间戳
 
  Instant preInstant = Instant.ofEpochSecond(1609741558,1);
 
  //过去时间和当前时间的相差值,可以指定单位TemporalUnit
 
  System.out.println(preInstant.until(Instant.now(), ChronoUnit.MINUTES));
 
  ---------------输出结果------------------------
 
  2021-01-04T06:37:53.743Z
 
  2021-01-04T06:37:53.795Z
 
  2021-01-04T06:37:53.795Z
 
  1995-10-23T10:12:35.999999999Z
 
  2021-01-04T06:25:58.000000001Z
 
  2021-01-04T06:37:53.798Z
 
  11
 
  Instant的使用
 
  Instant instant = Instant.now();
 
  //设置时区为America/El_Salvador(美国)
 
  ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("America/El_Salvador"));
 
  System.out.println(zonedDateTime);
 
  //设置时区为偏移-6的时区(美国)
 
  OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(-6));
 
  System.out.println(offsetDateTime);
 
  //天数加2,分钟数减1。月数设定为12月
 
  Instant fixInstant = instant.minus(1, ChronoUnit.MINUTES)
 
          .plus(2, ChronoUnit.DAYS);
 
  System.out.println(instant);
 
  System.out.println(fixInstant);
 
  ---------------输出结果-----------------
 
  2021-01-04T00:53:01.895-06:00[America/El_Salvador]
 
  2021-01-04T00:53:01.895-06:00
 
  2021-01-04T06:53:01.895Z
 
  2021-01-06T06:52:01.895Z
 
  LocalTime
 
  LocalTime是用来操作时分秒的类,外加精确到纳秒级别;无时区概念,转Instant需要先设置时区
 
  LocalTime的构造方法
 
  public static LocalTime now()  
 
  public static LocalTime of(int hour, int minute, int second, int nanoOfSecond)
 
  //距离凌晨的秒数
 
  public static LocalTime ofSecondOfDay(long secondOfDay)
 
  //距离凌晨的纳秒数
 
  public static LocalTime ofNanoOfDay(long nanoOfDay)
 
  public static LocalTime parse(CharSequence text, DateTimeFormatter formatter)  
 
  //jdk9
 
  public static LocalTime ofInstant(Instant instant, ZoneId zone)
 
  LocalTime与其他时间类的转换
 
  public LocalDateTime atDate(LocalDate date)
 
  public OffsetTime atOffset(ZoneOffset offset)  
 
  public long toEpochSecond(LocalDate date, ZoneOffset offset)
 
  LocalTime创建示例
 
  //  1的单位是纳秒
 
  LocalTime localTime = LocalTime.of(12, 12, 12, 1);
 
  System.out.println(localTime);
 
  localTime = LocalTime.ofSecondOfDay(60 * 60 * 12 + 60 * 12);
 
  System.out.println(localTime);
 
  localTime = LocalTime.parse("12:12:12", DateTimeFormatter.ISO_TIME);
 
  System.out.println(localTime);
 
  ---------------输出结果-----------------
 
  12:12:12.000000001
 
  12:12
 
  12:12:12
 
  LocalTime的常用处理方法
 
  LocalTime localTime = LocalTime.of(12, 12, 12, 1);
 
  System.out.println(localTime);
 
  //拼接日期,生成日期时间
 
  LocalDateTime dateTime = localTime.atDate(LocalDate.now());
 
  System.out.println(dateTime);
 
  //设定时区,时间量不变
 
  OffsetTime offsetTime = LocalTime.now().atOffset(ZoneOffset.ofHours(-6));
 
  System.out.println(offsetTime);
 
  //当前时间加日期,并设置时区为offset
 
  long seconds = LocalTime.now().toEpochSecond(LocalDate.now(), ZoneOffset.ofHours(-6));
 
  System.out.println(seconds);
 
  ---------------输出结果-----------------
 
  12:12:12.000000001
 
  2021-01-04T12:12:12.000000001
 
  16:29:33.917387700-06:00
 
  1609799373
 
  LocalDate
 
  LocalDate是用来操作年月日的类;表示的时间单位是截止到日,不包括小时及后面的单位
 
  public static LocalDate now()
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!