Java8新的日期类型

在Java8以前,Date日期API对我们非常的不友好,它无法表示日期,只能以毫秒的精试来表示时间,并且可以修改,他的线程还不是安全的。所以Java8中引入了全新的日期和时间API就是为了解决这一问题。

LocalDate,LocalTime,LocalDateTime的简单使用

  使用静态工厂of,来创建一个LocalDate实例。

@Test
public void test1() {
LocalDate of = LocalDate.of(2019, 11, 11);//2019-11-11
int year = of.getYear(); //年份:2019
Month month = of.getMonth(); //月份:NOVEMBER
int dayOfMonth = of.getDayOfMonth(); //这月的第几天:11
DayOfWeek dayOfWeek = of.getDayOfWeek();//这周的第几天:MONDAY
int dayOfYear = of.getDayOfYear(); //这年的第几天:315
boolean leapYear = of.isLeapYear(); //是否是润年:false
}

  使用静态工厂of,来创建一个LocalTime实例

@Test
public void test2() {
LocalTime localTime = LocalTime.of(11, 12, 13);
int hour = localTime.getHour(); //小时:11
int minute = localTime.getMinute(); //分钟:12
int second = localTime.getSecond(); //秒数:13
}

  使用静态工厂of,来创建一个LocalDateTime实例

@Test
public void test3() {
//2019-11-12T13:14:15
LocalDateTime localDateTime = LocalDateTime.of(2019, 11, 12, 13, 14, 15);
//2019-11-12
LocalDate localDate = localDateTime.toLocalDate();
//13:14:15
LocalTime localTime = localDateTime.toLocalTime();
//可以从LocalDateTime获取所有的当前的信息,比如,年份,月份。。
LocalDateTime now = LocalDateTime.now(); //获取当前系统的日期,时间
}

格式化日期类型和解晰符串

@Test
public void test4() {
LocalDateTime localDateTime = LocalDateTime.now();
String format = localDateTime.format(DateTimeFormatter.BASIC_ISO_DATE);
//20191210
String format1 = localDateTime.format(DateTimeFormatter.ISO_DATE_TIME);
//2019-12-10T09:35:22.27
String format2 = localDateTime.format(DateTimeFormatter.ISO_DATE);
//2019-12-10
String format3 = localDateTime.format(DateTimeFormatter.ISO_TIME);
//09:37:52.778 //自定义规则
String format4 = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
//2019-12-10 09:39:18
String format5 = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
//2019-12-10
String format6 = localDateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
//09:40:06 //解晰字符串
String mYDateTime = "2019-12-10 09:39:18";
String mYDate = "2019-12-10";
LocalDate parse = LocalDate.parse(mYDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
//2019-12-10
LocalDateTime parse1 = LocalDateTime.parse(mYDateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
//2019-12-10T09:39:18
}

参考:

java8新特性七-Date Time API


细节决定成败!

个人愚见,如有不对,恳请扶正!

Java8 新特性 Data Time API的更多相关文章

  1. 乐字节-Java8新特性之Date API

    上一篇文章,小乐给大家带来了Java8新特性之Optional,接下来本文将会给大家介绍Java8新特性之Date API 前言: Java 8通过发布新的Date-Time API来进一步加强对日期 ...

  2. 【Java8新特性】Stream API有哪些中间操作?看完你也可以吊打面试官!!

    写在前面 在上一篇<[Java8新特性]面试官问我:Java8中创建Stream流有哪几种方式?>中,一名读者去面试被面试官暴虐!归根结底,那哥儿们还是对Java8的新特性不是很了解呀!那 ...

  3. Java8 新特性之Stream API

    1. Stream 概述 Stream 是Java8中处理集合的关键抽象概念,可以对集合执行非常复杂的查找,过滤和映射数据等操作; 使用 Stream API 对集合数据进行操作,就类似于使用 SQL ...

  4. Java8 新特性 Lambda & Stream API

    目录 Lambda & Stream API 1 Lambda表达式 1.1 为什么要使用lambda表达式 1.2 Lambda表达式语法 1.3 函数式接口 1.3.1 什么是函数式接口? ...

  5. java8新特性——时间日期API

    传统的时间 API 存在线程安全的问题,在多线程开发中必须要上锁,所以 java8 现在为我们提供了一套全新的时间日期 API ,今天进来学习一下java8 的时间日期 API. 一.使用 Local ...

  6. 【Java8新特性】面试官:谈谈Java8中的Stream API有哪些终止操作?

    写在前面 如果你出去面试,面试官问了你关于Java8 Stream API的一些问题,比如:Java8中创建Stream流有哪几种方式?(可以参见:<[Java8新特性]面试官问我:Java8中 ...

  7. 乐字节-Java8新特性之Base64和重复注解与类型注解

    上一篇小乐给大家说了<乐字节-Java8新特性之Date API>,接下来小乐继续给大家说一说Java8新特性之Base64和重复注解与类型注解. 一.Base64 在Java 8中,内置 ...

  8. Java8新特性时间日期库DateTime API及示例

    Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和SimpleDateFormat等API ...

  9. Java8 新特性 Stream() API

    新特性里面为什么要加入流Steam() 集合是Java中使用最多的API,几乎每一个Java程序都会制造和处理集合.集合对于很多程序都是必须的,但是如果一个集合进行,分组,排序,筛选,过滤...这些操 ...

随机推荐

  1. Python urllib与requests、XML和HTMLParser

    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1019223241745024 Python 的内建模块urllib提供了一系列用于操作 ...

  2. LinuxShell——变量

    LinuxShell——变量 摘要:本文主要学习了Shell命令中的变量. 什么是变量 简单的说,变量就是让某一个特定字串代表不固定的内容. 变量是计算机内存的单元,其中存放的值可以改变.当Shell ...

  3. Java生鲜电商平台-系统报表设计与架构

    Java生鲜电商平台-系统报表设计与架构 说明:任何一个运行的平台都需要一个很清楚的报表来显示,那么作为Java开源生鲜电商平台而言,我们应该如何设计报表呢?或者说我们希望报表来看到什么数据呢?   ...

  4. Hbase基本原理

    一.hbase是什么 HBase 是一种类似于数据库的存储层,也就是说 HBase 适用于结构化的存储.并且 HBase 是一种列式的分布式数据库,是由当年的 Google 公布的 BigTable ...

  5. 谁在使用GPU?

    nvidia-smi命令可以查看GPU使用情况,但是只能看到占用每个GPU的进程ID.根据进程ID可以得到进程详情,进程详情中包括用户ID,根据用户ID可以获取用户名称,从而知道哪个用户在使用GPU. ...

  6. MQ选型对比ActiveMQ,RabbitMQ,RocketMQ,Kafka 消息队列框架选哪个?

    最近研究消息队列,发现好几个框架,搜罗一下进行对比,说一下选型说明: 1)中小型软件公司,建议选RabbitMQ.一方面,erlang语言天生具备高并发的特性,而且他的管理界面用起来十分方便.不考虑r ...

  7. vue学习指南:第一篇 - vue的介绍

    三大主流框架: 1. Vue.js 是目前最火的一个前端框架,react是最流行的前端框架 (react除了开发网站,还可以开发手机app,Vue语法也是可以用于手机App开发的,需要借助于wexx) ...

  8. 章节十四、9-Actions类鼠标悬停、滚动条、拖拽页面上的元素

    一.鼠标悬停 1.在web网站中,有一些页面元素只需要我们将鼠标指针放在上面就会出现被隐藏的下拉框或者其它元素,在自动化的过程中我们使用Actions类对鼠标进行悬停操作. 2.案例演示 packag ...

  9. springcloud学习之路: (四) springcloud集成Hystrix服务保护

    Hystrix是一套完善的服务保护组件, 可以实现服务降级, 服务熔断, 服务隔离等保护措施 使用它可以合理的应对高并发的情况 做到保护服务的效果 1. 导入依赖 <dependency> ...

  10. 201871010105-曹玉中《面向对象程序设计(java)》第八周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第八周学习总结 项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/n ...