New Date API介绍

Posted tenwood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了New Date API介绍相关的知识,希望对你有一定的参考价值。

一、新的Date API介绍

LocalDate
LocalTime
Instant
Duration
Period

formater
parsejdk以前的java.util.Date存在的问题

1)比如new Date(119, 2, 18)表示Mon Mar 18 00:00:00 CST 2019,2019年3月18日,year要从1900年加起,month是从0开始,day是从1开始。

2)SimpleDateFormat不是线程安全的,比如多线程情况下simpleDateFormat.parse会出问题。

3)Date名字叫日期,但是后面还有time时间

 

例子如下:

 1 package com.cy.java8;
 2 
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Date;
 6 
 7 public class DateTest 
 8 
 9     public static void main(String[] args) throws ParseException 
10         Date date = new Date(119, 2, 18);
11         System.out.println(date);
12 
13         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
14         for(int i=0; i<5; i++)
15             new Thread(()->
16                 try 
17                     Date parseDate = sdf.parse("20190505");
18                     System.out.println(parseDate);
19                  catch (ParseException e) 
20                     e.printStackTrace();
21                 
22 
23             ).start();
24         
25     
26 

 

二、LocalDate      

 

 1 package com.cy.java8;
 2 
 3 import java.time.LocalDate;
 4 import java.time.temporal.ChronoField;
 5 
 6 public class DateTest 
 7 
 8     public static void main(String[] args) 
 9         testLocalDate();
10     
11 
12     /**
13      * LocalDate是线程安全的
14      */
15     private static void testLocalDate()
16         LocalDate localDate = LocalDate.of(2019, 10, 2);
17         System.out.println(localDate.getYear());
18         System.out.println(localDate.getMonth());
19         System.out.println(localDate.getMonthValue());
20         System.out.println(localDate.getDayOfYear());
21         System.out.println(localDate.getDayOfMonth());
22         System.out.println(localDate.getDayOfWeek());
23 
24         System.out.println(localDate.get(ChronoField.YEAR));
25         System.out.println(localDate.get(ChronoField.MONTH_OF_YEAR));
26         System.out.println(localDate.get(ChronoField.DAY_OF_MONTH));
27 
28         LocalDate now = LocalDate.now();
29         System.out.println(now);
30     
31 

 

console:

2019
OCTOBER
10
275
2
WEDNESDAY
2019
10
2
2019-10-02

 

三、 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

----

以上是关于New Date API介绍的主要内容,如果未能解决你的问题,请参考以下文章

javaScript系列:js中获取时间new Date()详细介绍

js中时间new Date()详解以及实例

Python API 使用总结

还在用new Date计算任务执行时间?强烈建议使用这个API

[译]. NET 6 新增API

[译]. NET 6 新增API