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. docker容器启动设置固定IP

    docker安装以后的网络类型 [root@insure updev]# docker network ls NETWORK ID NAME DRIVER SCOPE 14da40175b01 bri ...

  2. JavaScript模块化思想

    1. 首先,我们需要明白为什么要用模块化? 功能都是为了解决需求的.模块化可以带来的优点有以下几点: (1)可维护性.举个例子,如果我们把未使用模块化的代码比作油和水混合在了一起,模块化之后的代码就好 ...

  3. 【Atcoder yahoo-procon2019-qual D】 Ears

    Atcoder yahoo-procon2019-qual D 题意:给你\(L\)个耳朵(???),以及一条范围从\(0\)到\(L\)的数轴,你可以选择一个出发点,从该点开始随意走动,如果经过了\ ...

  4. SVM的简单介绍

    ng的MI-003中12 ——SVM 一.svm目标函数的由来 视频先将LR的损失函数: 在上图中,先将y等于0 和y等于1的情况集合到一起成为一个损失函数,然后分别讨论当y等于1的时候损失函数的结果 ...

  5. C# Hashtable vs Dictionary 学习笔记

    Hashtable 和 Dictionary 存储的都是键值对,我的理解是Dictionary是Hashtable的泛型实现. Hashtable的键和值都是object类型.所以,key和value ...

  6. Dell Technology Summit(2018.10.17)

    时间:2018.10.17地点:北京国家会议中心

  7. redis 配置 架构 基础

    redis 官网  redis.io   io为某国家域名后缀 有redis各种版本. java 版本 又分各种工具 clients 下 RedisClient为图形化管理界面 Jedis 才是jav ...

  8. 汇编 STOSB, STOSW, STOSD指令

    知识点: 汇编指令 STOSB STOSW STOSD 一.汇编指令STOSB 004113AC 8DBD B4FEFFFF LEA EDI,DWORD PTR SS:[EBP-14C] 004113 ...

  9. .NET CORE下的Cache

    .NET CORE 下的缓存跟之前ASP.NET下的缓存有所不同,应用.NET CORE缓存首先需要引入Microsoft.Extensions.Caching.Memory程序包 下面简单写了一个C ...

  10. item 3: 理解decltype

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 decltype是一个奇怪的东西.给出一个名字或者一个表达式,de ...