Java8中新增的日期和时间API

1.计算时间间隔

Java8之前,我们想要确定一个方法的运行时间长度,可以这样:

long start = System.currentTimeMillis();
doSomething();
long end = System.currentTimeMillis();
System.out.println(end-start);

Java8中,可以这样

Instant start = Instant.now();
doSomething();
Instant end = Instant.now();
Duration time = Duration.between(start, end);
long seconds = time.getSeconds();//秒表示 
long millis = time.toMillis();//毫秒表示
System.out.println(seconds);
System.out.println(millis);

可以轻松选择用纳秒、毫秒、秒、分钟、小时或者天来表示时间间隔的单位。

可以这样来比较第一个方法是不是比第二个执行得更快:

Instant start = Instant.now();
doSomething();
Instant end = Instant.now();
Duration time = Duration.between(start, end);

Instant start2 = Instant.now();
doSomething2();
Instant end2 = Instant.now();
Duration time2 = Duration.between(start2, end2);
boolean fast = time.minus(time2).isNegative();
System.out.println(fast);

2.本地日期和时间

LocalDate now = LocalDate.now();
LocalDate date = LocalDate.of(2005, 5, 10);
LocalDate date2 = LocalDate.of(2003, Month.FEBRUARY, 5);
System.out.println(now);
System.out.println(date);
System.out.println(date2);

LocalTime now2 = LocalTime.now();
LocalTime time = LocalTime.of(22, 50, 56);
System.out.println(now2);
System.out.println(time);

3.日期格式化

//按照内置的不同方式格式化
String format = DateTimeFormatter.ISO_LOCAL_DATE.format(LocalDate.now());
String format2 = DateTimeFormatter.ISO_LOCAL_TIME.format(LocalTime.now());
String format3 = DateTimeFormatter.ISO_DATE.format(LocalDateTime.now());
String format4 = DateTimeFormatter.ISO_INSTANT.format(Instant.now());
System.out.println(format);
System.out.println(format2);
System.out.println(format3);
System.out.println(format4);

//按照标准格式格式化
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
String format5 = formatter.format(LocalDateTime.now());
System.out.println(format5);

//按照指定方式格式化
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd E HH:mm:ss");
String format6 = pattern.format(LocalDateTime.now());
System.out.println(format6);
时间: 2024-12-19 11:45:59

Java8中新增的日期和时间API的相关文章

java 8中新的日期和时间API

java 8中新的日期和时间API 使用LocalDate和LocalTime LocalDate的实例是一个不可变对象,它只提供了简单的日期,并不含当天的时间信息.另外,它也不附带任何与时区相关的信息 LocalDate实例提供了多种方法来读取常用的值,比如年份,月份,星期几等 LocalDate date = LocalDate.of(2014,3,18); int year = date.getYear(); Month month = date.getMonth(); int day =

java8新特性——新日期和时间API

一.LocalDate,LocalTime,LocalDateTime LocalDate,LocalTime,LocalDateTime类的实例是不可改变的,分别表示使用ISO-8601日历系统的日期,时间,日期和时间.他们提供了简单的日期或时间,并不包含当前的时间信息.也不包含与地区相关的信息. //1.当前时间对象 LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); //2.自定义时间对象 LocalDateT

Java 8的日期和时间API

本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的日期和时间API,主要的类是Date和Calendar,由于它的设计有一些不足,业界广泛使用的是一个第三方的类库Joda-Time,关于Joda-time,我们在33节进行了介绍.Java 1.8学习了Joda-time,引入了一套新的API,位于包java.time下,本节,我们就来简要介绍这套新的API. 我们先从日期和时间的表示开始

计算机程序的思维逻辑 (95) - Java 8的日期和时间API

?本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的日期和时间API,主要的类是Date和Calendar,由于它的设计有一些不足,业界广泛使用的是一个第三方的类库Joda-Time,关于Joda-time,我们在33节进行了介绍.Java 1.8学习了Joda-time,引入了一套新的API,位于包java.time下,本节,我们就来简要介绍这套新的API. 我们先从日期和时间的表示开

JDK8版本之日期和时间API详解

伴随lambda表达式.streams以及一系列小优化,Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API.Java处理日期.日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限.Java也意识到需要一个更好的 API来满足社区中已经习惯了使用JodaTime API的人们.全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant). 长

[转载] C/C++中怎样获取日期和时间

C/C++中怎样获取日期和时间摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取.时间的计算和显示格式等方面进行了阐述.本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法. 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有

Java8新特性之:新的日期和时间API

一. LocalDate.LocalTime.Instant.Duration以及Period 1.LocalDate只提供日期,不含当天时间信息 LocalDate date = LocalDate.of(2018, 5, 03); int year = date.getYear(); Month month = date.getMonth(); int day = date.getDayOfMonth(); DayOfWeek dow = date.getDayOfWeek(); int l

(3.16)SQL语句中所有有关日期 、时间的用法

DateAdd 函数描述:返回已添加指定时间间隔的日期. 语法DateAdd(interval, number, date)interval: 必选.字符串表达式,表示要添加的时间间隔.有关数值,请参阅“设置”部分. number: 必选.数值表达式,表示要添加的时间间隔的个数.数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期). date: 必选.Variant 或要添加 interval 的表示日期的文字. interval 参数可以有以下值:yyyy (年) .q (季度) .

java8新特性之 日期和时间

在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateFormat类处理.同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端.并且也借鉴了第三方日期库joda很多的优点. java.time包下主要包含下面几个主要的类: Instant:时间戳 Duration:持续时间,时间差 Loc