java8新特性(6)— 日期与时间

java8新特性(6)— 日期与时间

全新的日期与时间处理

package com.common.jdk8;import java.time.*;//Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理。
//在旧版的 Java 中,日期时间 API 存在诸多问题,其中有:
//非线程安全 − java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。
//设计很差 − Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理。另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计。
//时区处理麻烦 − 日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calendar和java.util.TimeZone类,但他们同样存在上述所有的问题。//Java 8 在 java.time 包下提供了很多新的 API。以下为两个比较重要的 API:
//Local(本地) − 简化了日期时间的处理,没有时区的问题。
//Zoned(时区) − 通过制定的时区处理日期时间。//新的java.time包涵盖了所有处理日期,时间,日期/时间,时区,时刻(instants),过程(during)与时钟(clock)的操作。
public class Jdk8Test6 {public static void main(String args[]){Jdk8Test6 jdk8Test6 = new Jdk8Test6();jdk8Test6.testLocalDateTime();jdk8Test6.testZonedDateTime();}public void testLocalDateTime(){// 获取当前的日期时间LocalDateTime currentTime = LocalDateTime.now();System.out.println("当前时间: " + currentTime);LocalDate date1 = currentTime.toLocalDate();System.out.println("date1: " + date1);Month month = currentTime.getMonth();int day = currentTime.getDayOfMonth();int seconds = currentTime.getSecond();System.out.println("月: " + month +", 日: " + day +", 秒: " + seconds);LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);System.out.println("date2: " + date2);// 12 december 2014LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);System.out.println("date3: " + date3);// 22 小时 15 分钟LocalTime date4 = LocalTime.of(22, 15);System.out.println("date4: " + date4);// 解析字符串LocalTime date5 = LocalTime.parse("20:15:30");System.out.println("date5: " + date5);}public void testZonedDateTime(){// 获取当前时间日期ZonedDateTime date1 = ZonedDateTime.parse("2015-12-03T10:15:30+05:30[Asia/Shanghai]");System.out.println("date1: " + date1);ZoneId id = ZoneId.of("Europe/Paris");System.out.println("ZoneId: " + id);ZoneId currentZone = ZoneId.systemDefault();System.out.println("当期时区: " + currentZone);}
}

运行结果

当前时间: 2019-07-02T01:25:17.250
date1: 2019-07-02
月: JULY, 日: 2, 秒: 17
date2: 2012-07-10T01:25:17.250
date3: 2014-12-12
date4: 22:15
date5: 20:15:30
date1: 2015-12-03T10:15:30+08:00[Asia/Shanghai]
ZoneId: Europe/Paris
当期时区: Asia/Shanghai

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

六、区块链主流共识算法浅析

转自:http://www.cocoachina.com/cms/wap.php?actionarticle&id22240。 一、概述: 1.工作量证明(Proof of Work): 通过所有节点的工作量竞争来达成一致。竞争的是运算力。 2.权益证明(Proof of S…

java8新特性(7)— Base64

java8新特性(7)— Base64 新增Base64工具类 package com.common.jdk8;import java.io.UnsupportedEncodingException; import java.util.Base64; import java.util.UUID;//在Java 8中,Base64编码已经成为Java类库的标准。 //Java 8 内置了 …

修改git历史提交的commit信息

本文是基于idea的操作,亲测可用 前言: 很多公司都会自定义 Git - 使用强制策略,那么他的commit信息就会有固定的格式,一旦不是这个格式,就会出现push失败 但是push失败,很多也只在dev和master分支做强制限…

七、区块链如何运用merkle tree验证交易真实性

转载自:https://www.tangshuang.net/4117.html 本文假设你已经知道区块链中merkle tree的原理,现在搞明白具体怎么来实现交易真实性验证。 Merkle Tree 这个小节简述一下merkle的原理。简单说,merkle tree就是一个hash二叉树,父…

idea端口占用解决记录

idea端口占用解决 每次占用,每次都要百度,路子很清晰了,记录下 报错:The port may already be in use or the connector may be misconfigured. 解决: 1.cmd 2.netstat -ano|findstr 你的端口号 举例:…

西安软件行业闲谈

尘埃落定,最终选择了西安 讲真,今年年初,就萌生了回西安的想法,毕竟北漂几年,该回了 当初还想着去上海两年,再去深圳两年,好好体验下各个一线城市的不同魅力 性格就是这样,不甘平凡…

消息队列(1):一个消息队列应该有的特点

消息队列常见场景 异步解耦 削峰填谷 日志收集分析 代替事务,最终一致 消息队列特点 消息队列之所以能异步,就是因为消息并不是实时处理的,那肯定会有一个存储消息,处理消息的地方,才能达到异步效果。 所以最简单的…

消息队列(2):常见的消息队列协议

协议很常见,只要是通信,就会用到协议,就像我们说话的语言一样,不同的语言连通着不同的人群。 所以说,消息队列也是一样,想要互相通信,就要使用同一种协议。 每个协议下的消息队列,都…

spingboot下shiro自定义过滤器roles

shiro默认的roles过滤,是与的关系,就是你的用户得有roles对应的所有角色,才算有权限。 但是实际开发过程中,更多的是或的需求,只要用户满足roles中的一个角色,就算有权限。 所以就涉及到重写过滤器roles&am…

shiro的集群动态权限更新

shiro的动态权限,一般都是将权限放在数据库中,项目启动后将权限加载给shiro 当数据库的权限数据发生改变时,重新加载权限给shiro。 单机这样做没问题,但是当项目服务是集群的时候,比如有tomcat1,tomcat2&am…

消息队列(3):RabbitMQ

RabbitMQ,基于AMQP协议实现。 特点: 消息可靠:持久化消息,传输确认,发布确认。 路由灵活:使用AMQP的Exchange来路由消息,包括RabbitMQ内置的Exchange,还有复杂的路由也可以使用多个…

java基础 --- Arrays.asList():返回指定数组支持的固定大小列表

Arrays.asList():返回指定数组支持的固定大小列表 首先看下这个方法的源码注释,注意第一句,Returns a fixed-size list backed by the specified array., 意思就是:返回指定数组支持的固定大小列表 所以:…

[设计模式] ------ 单例模式

单例模式,是众多设计模式中,写法最多,套路最多,坑最多,面试被问最多的设计模式。 基本上,单例模式在面试中已经被问烂了,依稀记得我的上家公司面试我的时候,说到设计模式&#xff0c…

分布式锁闲谈

分布式锁闲谈 前言 服务器单机情况下,要锁住某个资源,我们一般用到的是synchronized,lock等锁,这是java提供的,也确实能很有效的锁住资源。 但是在服务器集群的情况下,上面这些单机锁就不起作用了&#…

java 后端与前端Date类型与String类型互相转换(使用注解)

一:java 后端格式化输出Date类型的属性值到前端 后端返回的类型中,直接定义Date类型,加上此注解,直接将Date类型转成自定义的格式给前端 class TestDateOutput{JsonFormat(pattern "yyyy-MM-dd")private Date create…

spring boot配置对上传文件的大小限制

spring boot配置对上传文件的大小限制 spring-boot 2.0之前 Spring Boot1.4版本后配置更改为(默认单个文件最大1Mb,单次请求文件总数大小最大10Mb): spring.http.multipart.maxFileSize 20MB spring.http.multipart.maxRequestSize20MB spring-boot …

[设计模式] ------ 适配器模式

适配器把一个类的接口,强制变成另外一个类的接口实现。 个人建议,万不得已不要用适配器。但是,你一定要知道有这么个东西。 如果你的项目刚刚起步,就有人用了适配器,那基本上就是滥用。 适配器一般是项目庞大&#xff…

Notepad++中的UTF-8无BOM格式编码

Notepad中,关于utf-8的编码格式,有两种:以UTF-8无BOM格式编码和以UTF-8格式编码。 很容易给人一种错觉,第一反应会选择以UTF-8格式编码,感觉这种就是平时所说的UTF-8,然而这种编码是默认带BOM的&#xff0…

java 上传文件注意事项

java 上传文件注意事项 1、文件名有特殊字符的情况,所以最好是文件名前台url编码,后台再url解码,这点在下载的时候也一样 2、文件大小一定要设置,spring boot 有默认。 3、文件名校验: 3.1、文件后缀校验 3.2、conten…

[设计模式] ------ 装饰模式

首先,假设项目有个核心功能。 随着项目迭代,又产生功能1和功能2 于是有如下需求: 某个场景需要核心功能和功能1组合, 某个场景需要核心功能和功能2组合, 某个场景需要核心功能和功能1和功能2组合, 甚至以后…