Java 8 – Date Time API

Java 8 comes with a much improved and much required change in the way date and time is handled.
The classes that represent the date and time concepts are present in the java.time package. The important classes in this package are:
  • java.time.Period: This class represents the date part of the datetime. It represents the date part in terms of days, months and years. for example 1 year, 2 months and 5 days
  • java.time.Duration: This class represents the time part of the datetime. It represents the time part in terms of seconds and nanoseconds. for example ’29 seconds’
  • java.time.Instant: This represents a particular instant in the timeline. It stores the number of seconds through epoch time and also has another field that stores the nanoseconds
  • java.time.LocalDate: This stores the date part of date-time in terms of years-months-days. It does not store the TimeZone. The class is immutable.
  • java.time.LocalTime: This class stores the time part of date time without any TimeZone info.
  • java.time.LocalDateTime: This class stores the LocalDate and LocalTime but no TimeZone
  • java.time.ZonedDateTime: This class stores the LocalDateTime and the TimeZone info as a ZoneOffset object. The class has access to ZoneRules which can be used to convert to local time
  • java.time.ZoneOffset:This stores the time zone offset from UTC. The zone rules are stored in ZoneId.
  • java.time.OffsetDateTime:This stores the local datetime with the offset. This class does not have information about Zone Rules.
 package java8.datetime;

 import java.time.LocalDate;
import java.time.LocalTime; /**
* Java 8 – Date Time API
* LocalTime:当前时间
* LocalDate:当前日期
*/
public class LocalTimeDemo3 {
public static void main(String[] args) {
LocalTime localTime = LocalTime.now();
System.out.println("当前时间:" + localTime); LocalDate localDate = LocalDate.now();
System.out.println("当前日期:" + localDate);
}
}
LocalDateTime
 package java8.datetime;

 import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoField; /**
* Java 8 – Date Time API
* LocalDateTime
* url:http://www.studytrails.com/java/java8/java8_date_and_time/
*/
public class LocalDateTimeDemo2 {
public static void main(String[] args) {
// create a LocalDateTime
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("新建LocalDateTime对象:" + localDateTime); // prints 2018-02-12T15:08:44.116 // Convert LocalDateTime to datetime in particular zone
System.out.println("指定时区:" + localDateTime.atZone(ZoneId.of("America/New_York"))); // Get the day of week from DateTime
System.out.println("星期几:" + DayOfWeek.from(localDateTime)); // prints SUNDAY. // Get the day of year from DateTime
System.out.println("当年第几天:" + localDateTime.get(ChronoField.DAY_OF_YEAR)); // prints 43
// The other fields that can be returned are MINUTE_OF_HOUR, MINUTE_OF_DAY, HOUR_OF_AMPM,
// HOUR_OF_DAY, AMPM_OF_DAY, DAY_OF_WEEK, DAY_OF_MONTH, DAY_OF_YEAR, MONTH_OF_YEAR,
// YEAR, OFFSET_SECONDS (offset from UTC). // 获得当前日期
System.out.println("当前日期:" + localDateTime.toLocalDate());
// prints 2014-09-29 // 获取当前时间
System.out.println("当前时间:" + localDateTime.toLocalTime());
// prints 22:26:30.146 // Create a LocalDateTime from year, month, day, hour, min
System.out.println("实例化LocalDateTime by Int:" + LocalDateTime.of(2014, 10, 1, 10, 0));
// prints 2014-10-01T10:00 // Create LocalDateTime by parsing a string
LocalDateTime parsedLocalDateTime = LocalDateTime.parse("2014-01-01T11:00");
System.out.println("实例化LocalDateTime by String:" + parsedLocalDateTime); System.out.println("当前小时点:" + localDateTime.getHour()); }
}

Instant

 package java8.datetime;

 import java.time.Instant;
import java.time.temporal.ChronoUnit; /**
* Java 8 – Date Time API
* Instant
* url:http://www.studytrails.com/java/java8/java8_date_and_time/
*/
public class InstantDemo1 {
public static void main(String[] args) {
//Creating a local date
Instant now = Instant.now();
//2018-02-12T06:29:01.493Z
System.out.println("当前时间:" + now); // The epoch seconds is the number of seconds since 1970-01-01T00:00:00Z
System.out.println("当前秒数:" + now.getEpochSecond()); // 调整时间
// the plus function allows adding time intervals.
// The time intervals can be NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS, HALF_DAYS, DAYS
Instant tomorrow = now.plus(2, ChronoUnit.DAYS);
System.out.println("明天时间:" + tomorrow);
// The minus function allows subtracting time from an instant.
Instant yesterday = now.minus(1, ChronoUnit.DAYS);
System.out.println("昨天时间:" + yesterday); // The compare function can be used to compare two dates.
// It returns -1 if the date that is passed is after , 1 if it is before
System.out.println("今天和明天比较:" + now.compareTo(tomorrow));// prints -1 // check if one instant is after another
System.out.println("今天是否在昨天后面:" + now.isAfter(yesterday));// prints true }
}

Java之Date Time API (Java 8 新特性)的更多相关文章

  1. Java 8 Date Time API Example Tutorial – LocalDate, Instant, LocalDateTime, Parse and Format

    参考 Java 8 Date and Time API is one of the most sought after change for developers. Java has been mis ...

  2. Java知识回顾 (18)Java 8、9、11的新特性

    Java 8 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 Jav ...

  3. Java单元測试工具JUnit 5新特性一览

    Java单元測试工具JUnit 5新特性一览 作者:chszs,未经博主同意不得转载. 经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs JUnit是最流行的开源 ...

  4. java 与日期转换相关的方法(java.util.date类型和java.sql.date类型互相转换)、随机字符串生成方法、UUID生产随机字符串

    package com.oop.util; import java.text.*; import java.util.UUID; import org.junit.Test; /* * 与日期相关的工 ...

  5. ASP.NET Web API 2.0新特性:Attribute Routing1

    ASP.NET Web API 2.0新特性:Attribute Routing[上篇] 对于一个针对ASP.NET Web API的调用请求来说,请求的URL和对应的HTTP方法的组合最终决定了目标 ...

  6. 尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性

    本文首发于<尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性> 概述 .NET开发者们大家好,我是Rector. 几天前(美国时间2 ...

  7. 【java】JDK1.8时间日期库 新特性 所有java中时间Date的使用

    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期, ...

  8. Java Development Kit (JDK) 发展历程 及新特性

    SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE. EE(J2EE),enterprise edition,企业版,使用这 ...

  9. 一次电话Java面试的问题总结(JDK8新特性、哈希冲突、HashMap原理、线程安全、Linux查询命令、Hadoop节点)

    面试涉及问题含有: Java JDK8新特性 集合(哈希冲突.HashMap的原理.自动排序的集合TreeSet) 多线程安全问题 String和StringBuffer JVM 原理.运行流程.内部 ...

随机推荐

  1. Omi框架学习之旅 - 组件通讯(data-*通讯) 及原理说明

    上一篇文章说了omi中的组件,以及组件如何使用及嵌套. 那omi中的组件是怎么通讯的呢? 其实omi提供的通讯方式比较丰富,各有千秋,各有各的场景用途.所以按需使用即可. 老规矩:先上demo代码, ...

  2. Django 学习第三式

    1.Django请求生命周期 两种情况:最终返回的是字符串 1.-> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串 2.-> URL对应关系(匹配) -> ...

  3. C#中byte[]类型转换为其它类型

    我们这里就举byte[]类型和long类型的转换,其它数据类型用BitConverter类以此类推: /// <summary> /// 字节数组转换为long类型 /// </su ...

  4. 在angularjs实现一个时钟

    想在网页上,显示当前系统时钟. <body ng-app="App2" ng-controller="Ctrl2"> <div ng-bind ...

  5. scikit-learn的线性回归模型

    来自 http://blog.csdn.net/jasonding1354/article/details/46340729 内容概要 如何使用pandas读入数据 如何使用seaborn进行数据的可 ...

  6. Linux查看日志常用命令

    1.动态循环查看文件内容 tail  -n  10  test.log   查询日志尾部最后10行的日志; tail -n +10 test.log    查询10行之后的所有日志; head -n ...

  7. Spring学习日志之纯Java配置的MVC框架搭建

    依赖引入 <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifa ...

  8. 生活沉思录 via 哲理小故事(一)

    1.小托蒂的悲剧 意大利小男孩托蒂,有一只十分奇怪的眼睛,因为从生理上看,这是一只完全正常的眼睛,但却是失明的. 原来,托蒂刚出生时,这只眼睛轻度感染,曾用绷带缠了两个星期.这对常人来说几乎没有人任何 ...

  9. Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许 ...

  10. React++ node.js ++SQL Sever ++MySQL++ python ++ php ++ java ++ c++ c#++ java ++ android ++ ios ++Linux+

    "C语言在它诞生的那个年代,是非常不错的语言,可惜没有OOP.当项目臃肿到一定程度,人类就不可控了. 为了弥补这个缺陷,C++诞生了.而为了应对各种情况,C++设计的大而全,太多复杂的特性, ...