iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java8中日期API的特性有哪些
  • 937
分享到

Java8中日期API的特性有哪些

java8日期apiava 2023-05-31 10:05:27 937人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关Java8中日期api的特性有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.Clock 时钟Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可

这期内容当中小编将会给大家带来有关Java8中日期api的特性有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1.Clock 时钟

Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数。某一个特定的时间点也可以使用Instant类来表示,Instant类也可以用来创建老的java.util.Date对象。

Clock clock = Clock.systemDefaultZone();long millis = clock.millis();Instant instant = clock.instant();Date legacyDate = Date.from(instant);  // legacy java.util.Date

2.Timezones 时区

在新API中时区使用ZoneId来表示。时区可以很方便的使用静态方法of来获取到。 时区定义了到UTS时间的时间差,在Instant时间点对象到本地日期对象之间转换的时候是极其重要的。

System.out.println(ZoneId.getAvailableZoneIds());// prints all available timezone idsZoneId zone1 = ZoneId.of("Europe/Berlin");ZoneId zone2 = ZoneId.of("Brazil/East");System.out.println(zone1.getRules());System.out.println(zone2.getRules());// ZoneRules[currentStandardOffset=+01:00]// ZoneRules[currentStandardOffset=-03:00]

3.LocalTime 本地时间

LocalTime 定义了一个没有时区信息的时间,例如 晚上10点,或者 17:30:15。下面的例子使用前面代码创建的时区创建了两个本地时间。之后比较时间并以小时和分钟为单位计算两个时间的时间差:

LocalTime now1 = LocalTime.now(zone1);LocalTime now2 = LocalTime.now(zone2);System.out.println(now1.isBefore(now2)); // falselong hoursBetween = ChronoUnit.HOURS.between(now1, now2);long minutesBetween = ChronoUnit.MINUTES.between(now1, now2);System.out.println(hoursBetween);    // -3System.out.println(minutesBetween);   // -239

LocalTime 提供了多种工厂方法来简化对象的创建,包括解析时间字符串

LocalTime localTime= LocalTime.of(23, 59, 59);System.out.println(localTime);    // 23:59:59DateTimeFORMatter germanFormatter =  DateTimeFormatter    .ofLocalizedTime(FormatStyle.SHORT)    .withLocale(Locale.GERMAN);LocalTime leetTime = localTime.format(germanFormatter);System.out.println(leetTime);

4.LocalDate 本地日期

LocalDate 表示了一个确切的日期,比如 2014-03-11。该对象值是不可变的,用起来和LocalTime基本一致。下面的例子展示了如何给Date对象加减天/月/年。另外要注意的是这些对象是不可变的,操作返回的总是一个新实例。

LocalDate today = LocalDate.now();LocalDate tomorrow = today.plus(1, ChronoUnit.DAYS);LocalDate yesterday = tomorrow.minusDays(2);LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4);DayOfWeek dayOfWeek = independenceDay.getDayOfWeek();System.out.println(dayOfWeek);  // FRIDAY

从字符串解析一个LocalDate类型和解析LocalTime一样简单:

DateTimeFormatter germanFormatter =  DateTimeFormatter    .ofLocalizedDate(FormatStyle.MEDIUM)    .withLocale(Locale.GERMAN);LocalDate xmas = LocalDate.parse("24.12.2014", germanFormatter);System.out.println(xmas);  // 2014-12-24

5.LocalDateTime 本地日期时间

LocalDateTime 同时表示了时间和日期,相当于前两节内容合并到一个对象上了。LocalDateTime和LocalTime还有LocalDate一样,都是不可变的。LocalDateTime提供了一些能访问具体字段的方法。

LocalDateTime sylvester = LocalDateTime.of(2014, Month.DECEMBER, 31, 23, 59, 59);DayOfWeek dayOfWeek = sylvester.getDayOfWeek();System.out.println(dayOfWeek);   // WEDNESDAYMonth month = sylvester.getMonth();System.out.println(month);     // DECEMBERlong minuteOfDay = sylvester.getLong(ChronoField.MINUTE_OF_DAY);System.out.println(minuteOfDay);  // 1439

只要附加上时区信息,就可以将其转换为一个时间点Instant对象,Instant时间点对象可以很容易的转换为老式的java.util.Date。

Instant instant = sylvester    .atZone(ZoneId.systemDefault())    .toInstant();Date legacyDate = Date.from(instant);System.out.println(legacyDate);   // Wed Dec 31 23:59:59 CET 2014

格式化LocalDateTime和格式化时间和日期一样的,除了使用预定义好的格式外,我们也可以自己定义格式:

DateTimeFormatter formatter =  DateTimeFormatter    .ofPattern("MMM dd, yyyy - HH:mm");LocalDateTime parsed = LocalDateTime.parse("Nov 03, 2014 - 07:13", formatter);String string = formatter.format(parsed);System.out.println(string);   // Nov 03, 2014 - 07:13

和java.text.NumberFormat不一样的是新版的DateTimeFormatter是不可变的,所以它是线程安全的。

上述就是小编为大家分享的Java8中日期API的特性有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java8中日期API的特性有哪些

本文链接: https://www.lsjlt.com/news/224696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java8中日期API的特性有哪些
    这期内容当中小编将会给大家带来有关Java8中日期API的特性有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.Clock 时钟Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可...
    99+
    2023-05-31
    java8 日期api ava
  • java8新特性之日期时间API
    目录jdk8之前 一、java.lang.System二、java.util.Date And java.sql.Date三、java.text.SimpleDateFor...
    99+
    2024-04-02
  • Java8中流的特性有哪些
    这篇文章主要介绍了Java8中流的特性有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。流(Stream)是Java8为了实现最佳性能而引入的一个全新的概念。在过去的几年中...
    99+
    2023-05-30
    java8
  • Java8中Stream的特性有哪些
    这期内容当中小编将会给大家带来有关Java8中Stream的特性有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.初识stream先来一个总纲:东西就是这么多啦,stream是java8中加入的一个...
    99+
    2023-05-31
    java8 stream ava
  • Java8中日期比较方法有哪些
    这篇文章将为大家详细讲解有关Java8中日期比较方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 Java 8日期比较方法在Java 8中,可以使用新的...
    99+
    2024-04-02
  • 深入理解Java8新特性之新日期时间API的应用
    目录1.新旧对比(线程安全问题)2.LocalDate3.LocalTime4.LocalDateTime5.Instant6.Duration、Period7.TestTempor...
    99+
    2024-04-02
  • 深入浅析Java8中日期与时间的特性
    深入浅析Java8中日期与时间的特性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。日期是商业逻辑计算一个关键的部分,任何企业应用程序都需要处理时间问题。应用程序...
    99+
    2023-05-31
    java8 ava 中日
  • Java8新特性Optional类及新时间日期API示例详解
    目录Optional类以前对null的处理Optional类介绍Optional的基本使用Optional的常用方法新时间日期API旧版日期时间的问题新日期时间API介绍日期时间的常...
    99+
    2022-11-13
    Java8 Optional类时间日期API Java8 新特性
  • java中有哪些时间日期API
    本篇文章给大家分享的是有关java中有哪些时间日期API,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编...
    99+
    2023-06-14
  • Java8新特性系列有哪些
    本篇内容介绍了“Java8新特性系列有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Java 8之前...
    99+
    2024-04-02
  • Java8日期处理的实践都有哪些
    本篇文章给大家分享的是有关Java8日期处理的实践都有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java 8 推出了全新的日期时间API,我们将通过一些简单的实例来学习...
    99+
    2023-06-16
  • java时间日期的API有哪些
    本篇内容主要讲解“java时间日期的API有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java时间日期的API有哪些”吧!1、Clock提供了访问当前时间和日期的功能。Clock对当前时...
    99+
    2023-06-30
  • Java8新特性之线程安全日期类
    目录LocalDateTimeSimpleDateFormat线程不安全SimpleDateFormat如何保证线程安全Java8全新的日期和时间APILocalDateLocalT...
    99+
    2024-04-02
  • Java8中Stream API的技巧有哪些
    本篇内容介绍了“Java8中Stream API的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! Stream简介Jav...
    99+
    2023-06-16
  • Java8新特性Optional容器类的应用有哪些
    这篇文章主要讲解了“Java8新特性Optional容器类的应用有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java8新特性Optional容器类的应用有哪些”吧!1.Optiona...
    99+
    2023-06-25
  • java8新特性之stream流中reduce()求和知识有哪些
    这篇文章主要介绍了java8新特性之stream流中reduce()求和知识有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.stream().reduce()单字段求...
    99+
    2023-06-15
  • ES6中有哪些特性
    这篇文章给大家分享的是有关ES6中有哪些特性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.Object Shorthand新的对象声明方法允许我们可以不声明对象的 key :...
    99+
    2024-04-02
  • MySQL中日期函数有哪些
    小编给大家分享一下MySQL中日期函数有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!日期函数类型:(1)获取当前日期的函数和获取当前时间的函数(2)获取当前日期和时间的函数(3)UN...
    99+
    2024-04-02
  • ORACLE中有哪些日期类型
    ORACLE中有哪些日期类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据库中有4中日期类型:1、DATE:是最早和使用最广的日期类型,使...
    99+
    2024-04-02
  • Oracle中日期函数有哪些
    这篇文章主要介绍了Oracle中日期函数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。日期函数      SYSDAT...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作