Java之Date Time API (Java 8 新特性)
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 新特性)的更多相关文章
- 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 ...
- Java知识回顾 (18)Java 8、9、11的新特性
Java 8 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 Jav ...
- Java单元測试工具JUnit 5新特性一览
Java单元測试工具JUnit 5新特性一览 作者:chszs,未经博主同意不得转载. 经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs JUnit是最流行的开源 ...
- java 与日期转换相关的方法(java.util.date类型和java.sql.date类型互相转换)、随机字符串生成方法、UUID生产随机字符串
package com.oop.util; import java.text.*; import java.util.UUID; import org.junit.Test; /* * 与日期相关的工 ...
- ASP.NET Web API 2.0新特性:Attribute Routing1
ASP.NET Web API 2.0新特性:Attribute Routing[上篇] 对于一个针对ASP.NET Web API的调用请求来说,请求的URL和对应的HTTP方法的组合最终决定了目标 ...
- 尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性
本文首发于<尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性> 概述 .NET开发者们大家好,我是Rector. 几天前(美国时间2 ...
- 【java】JDK1.8时间日期库 新特性 所有java中时间Date的使用
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期, ...
- Java Development Kit (JDK) 发展历程 及新特性
SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE. EE(J2EE),enterprise edition,企业版,使用这 ...
- 一次电话Java面试的问题总结(JDK8新特性、哈希冲突、HashMap原理、线程安全、Linux查询命令、Hadoop节点)
面试涉及问题含有: Java JDK8新特性 集合(哈希冲突.HashMap的原理.自动排序的集合TreeSet) 多线程安全问题 String和StringBuffer JVM 原理.运行流程.内部 ...
随机推荐
- Centos6.8配置HTTPS
HTTPS服务http+openssl 环境要求:CA证书: 192.168.1.103网站服务器: 192.168.1.104客户端: 192.168.1.107 (linux图形化界面) 内核:( ...
- QT qss 初级介绍
这篇文章来自于QT的帮助文档,你要是看了最新版的,会发现讲解得更棒.如果你的英文不是那么好,或者说看着头疼,那还是来看此篇吧. 在此之前说一个帮助文档的特别用法,绝不仅仅是搜单词,QT的文档非常强大的 ...
- 自行实现高性能MVC
wcf虽然功能多.扩展性强但是也面临配置忒多,而且restful的功能相当怪异,并且目前没法移植.asp.net core虽然支持webapi,但是功能也相对繁多.配置复杂.就没有一个能让码农们安安心 ...
- visual studio Web发布至 IIS WebDeploy出错(未能创建SSL/TLS安全通道)Could not create SSL/TLS secure channel
问题发生的原因是VS 15.9尝试使用系统默认值进行TLS握手,但是要在VS内的某处设置为TLS1.2. 此问题的解决方法是在部署项目的IIS服务器上启用TLS 1.2.例如,请按照此文章中的说明操作
- 2-SAT超入门讲解
Preface 说实话2-SAT的题目我都没怎么做过,所以这里讲的都是些超入门什么的 还有一些板子题,由于是暑假的时候学的所以有些我也记不清了 主要学习参考自:Mancher的课件&& ...
- 校内模拟赛 Attack's Fond Of LeTri
Attack's Fond Of LeTri 题意: n个房子m条路径边的无向图,每个房子可以最终容纳b个人,初始有a个人,中途超过可以超过b个人,每条边有一个长度,经过一条边的时间花费为边的长度.求 ...
- C# 调用微信接口上传素材和发送图文消息
using Common;using Newtonsoft.Json.Linq;using System;using System.IO;using System.Net;using System.T ...
- Python 常用 代码片段
文件名字中含有特殊字符转成空格,因为?‘’等作为文件名是非法的.以下正则表达式进行过滤转换 newname = re.sub("[\s+\.\!\/_,$%^*(+\"\')]+| ...
- webvirtmgr-重命名kvm虚拟机的名称
之前部署了Webvirtmgr平台管理kvm虚拟机,由于虚拟机在创建时名称是顺便起的,后续在虚拟机上部署了部分业务.为了便于管理,最好将虚拟机的名称重置下. 现在说下如何修改kvm中虚拟机的名称: 比 ...
- javascript DOM操作中的insertAdjacentHTML方法
插入HTML内容与文本内容以前用的是innerHTML与innerText方法,今天看到insertAdjacentHTML和 insertAdjacentText两个API,特地学习一下: inse ...