Java 8: LocalDate、LocalTime 、LocalDateTime 处理日期时间

JDK8中,新增了三个类,用以处理时间。

LocalDate专门处理日期,LocalTime专门处理时间,LocalDateTime包含了日期和时间,而且对于很多复杂的问题,都提供了现成的方法,比如:获取2017年12月的第一个周一等。

package test;import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;/*** Created by lightClouds917* Date 2017/11/6* Description:Java8中处理时间和日期的类*SQL  -> Java--------------------------date -> LocalDatetime -> LocalTimetimestamp -> LocalDateTime*/
public class DateTest2 {public static void main(String[] args){test1();test2();Calendar calendar = Calendar.getInstance();System.out.println(calendar.getTime());}/*** 处理日期 LocalDate*/public static void test1(){//获取当前日期   2017-11-06LocalDate today = LocalDate.now();System.out.println(today);//构造日期   2017-10-08LocalDate today2 = LocalDate.of(2017,10,8);System.out.println(today2);//构造日期   2017-02-22    字符串严格按照yyyy-MM-ddLocalDate today3 = LocalDate.parse("2017-02-22");System.out.println(today3);//本月第一天  2017-11-01LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());System.out.println(firstDayOfMonth);//本月第二天  2017-11-02   第n天LocalDate secondDayOfMonth = today.withDayOfMonth(2);System.out.println(secondDayOfMonth);//本月最后一天 2017-02-28  方便解决任何年份的二月份多少天LocalDate lastDayOfMonth = today3.with(TemporalAdjusters.lastDayOfMonth());System.out.println(lastDayOfMonth);//获取2017年12月的第一个周一   2017-12-04LocalDate firstDayOf201712 = LocalDate.parse("2017-12-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));System.out.println(firstDayOf201712);}/*** 处理时间  LocalTime*/public static void test2(){//获取当前时间  含有毫秒值  17:18:41.571LocalTime now = LocalTime.now();System.out.println(now);//获取当前时间   去掉毫秒值   17:45:41LocalTime now1 = LocalTime.now().withNano(0);System.out.println(now1);//00:46:46.651  提供了把时分秒都设为0的方法LocalTime now2 = LocalTime.now().withHour(0);System.out.println(now2);//构造时间  00:20:55LocalTime time1 = LocalTime.of(0,20,55);System.out.println(time1);//构造时间  05:43:22LocalTime time2 = LocalTime.parse("05:43:22");System.out.println(time2);//标准时间 2017-11-06T17:53:15.930LocalDateTime lt = LocalDateTime.now();System.out.println(lt);}
}

及:

public class TimeTest {@Testpublic void testTime() {LocalDateTime time = LocalDateTime.now();System.out.println(time.toString()); //字符串表示System.out.println(time.toLocalTime()); //获取时间(LocalTime)System.out.println(time.toLocalDate()); //获取日期(LocalDate)System.out.println(time.getDayOfMonth()); //获取当前时间月份的第几天System.out.println(time.getDayOfWeek());  //获取当前周的第几天System.out.println(time.getDayOfYear());  //获取当前时间在该年属于第几天System.out.println(time.getHour());System.out.println(time.getMinute());System.out.println(time.getMonthValue());System.out.println(time.getMonth());System.out.println("-----------------------------------");//格式化输出DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYY/MM/dd HH:mm:ss");System.out.println(time.format(formatter));//构造时间LocalDateTime startTime = LocalDateTime.of(2018, 1, 1, 20, 31, 20);LocalDateTime endTime = LocalDateTime.of(2018, 1, 3, 20, 31, 20);//比较时间System.out.println(time.isAfter(startTime));System.out.println(time.isBefore(endTime));//时间运算,相加相减System.out.println(time.plusYears(2)); //加2年System.out.println(time.plusDays(2)); //加两天System.out.println(time.minusYears(2)); //减两年System.out.println(time.minusDays(2)); //减两天//获取毫秒数(使用Instant)System.out.println(time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());//获取秒数(使用Instant)System.out.println(time.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());}}

 

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

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

相关文章

超负荷写代码 = 慢性自杀

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作! 也许你会认为我是个故弄玄虚的标题党,不过我需要澄清一下。首先,这是真的,超负荷写代码的确意味着慢性自杀。然后问题就来了,“…

Dubbo + RestEasy 实现文件上传与下载

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 DubboRestEasy实现文件上传与下载 DubboRestEasy实现文件上传与下载 Maven依赖 注解 代码实现 1、 上传 2、 下载 3、 上传、下载请求参…

程序员必须知道的10大基础实用算法及其讲解

算法一:快速排序算法 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快&a…

《 双城记 》:无数的平民拥有的只是和她同样的眼睛 ...

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS:此书我没有买,是在喜玛拉雅上听完的,主播:高乐高 。 1、卡顿: 一个才华斐…

Git远程操作详解

摘要:Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 【编者按】Git是一个分布式版本控制/软件…

《千只鹤》:面对爱,我们永远还行走在成长的路上 ...

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS:之前我一直以为书名是 千纸鹤,直到真正拿到书才注意到,原来书名是《千只鹤》... 包括 2 部分&am…

程序员自我提高的几点建议 很实诚

一、背景 中国程序员的成长是与其学习环境相关,据统计,现时做计算机软件开发的人员65%是大专及本科学历,15%是来自于其他的培训机构。可见一个开发人员大致的学习经历和初步经验来自于大学。 而在印度,韩国,以及欧美一…

《 廊桥遗梦 》:用我的整个余生和全部的心来爱你 ...

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS:此书也是在喜玛拉雅上听完的,完全免费,主播的声音我很喜欢 ... 1. 弗朗西斯卡 一个妻子、母亲&a…

如何系统性地保障软件性能

摘要:软件性能贯穿整个软件开发过程,从需求到设计,到开发,到测试,最后到发布反馈,其作为软件用户的第一体验显得尤为重要。如何系统性地保障软件性能呢?文中以QQ为例,分别阐述了在各…

深入理解 AMQP 协议

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS:更多详情见 AMQP主页 :http://www.amqp.org/ 。 一、AMQP 是什么 AMQP(Advanced Message Queuing…

广州市科目三电子路考--大观路通过经验

视频:大观路 : http://v.pps.tv/play_3EO9GY.html 大家好,我是2014年5月8日考科目三的,本人是90分通过考试,在掉头的时候死火被扣10分,下面我会说明为什么会被扣10分的。 大观路段考试,总体来…

SpringBoot:Actuator 监控管理工程各项信息

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 在微服务体系中,有很多工程相互作用,如果其中某一个Down 了,可能就不是那么容易快速定位 bug 所属了…

2013科目三道路驾驶技能通用评判标准

一般规定:道路驾驶技能考试满分为100分,成绩达到90分的为合格。 道路驾驶技能通用评判 不合格情形:考试时出现下列情形之一的,评判为不合格: a)不按规定使用安全带或者戴安全头盔的; b)遮挡、关闭车内音视频…

如果编程语言是超级英雄……

摘要:此前我们曾假设过如果编程语言是女人,如果编程语言是把刀,现在我们将编程语言设想成电影中的超级英雄会是怎样一番情景呢? 说到编程语言,当然是萝卜白菜,各有所爱。假如要你在钟爱的语言之前加个超级…

Springboot:监控与管理 Actuator

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 前言: Actuator是一个暴露自身信息的模块,主要实现对应用系统的监控与管理。主要有三大功能: …

视频编解码,bbv 缓冲区的上溢和下溢

使用硬件相似的数据处理.一般都是数据进来,处理后立即发出去的形式.所以一般有一个数据进,一个数据出,2个接口. 硬件处理基本都要求实时.数据进来,处理之后马上发处理,这个时间要求非常短,一般要求控制在好多毫秒以内,才能达到实时的要求.一般硬件每秒钟能够处理的数据大小,在…

《Spring Cloud 与 Docker 微服务架构实战》笔记

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS:springcloud系列文章见:springcloud 系列,一看就会 。 在此,只是记录细碎知识点。 1…

视频测试序列下载:YUV文件

1、http://www.tkn.tu-berlin.de/research/vid/(此网站已经移走,正在寻找。) CIF: Akiyo、Bridge (far) 、Bridge (close) 、Bus 、Container 、Coastguard 、Flower 、Football 、Foreman 、Hall 、Highway 、Mobile & Cale…

MyBatis : Example 条件查询 in 用法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 只是记录下。 Example example new Example(UserxxxLog.class);Criteria createCriteria example.createCriteria();List<String&…

跨平台2D/3D游戏开发框架libGDX发布1.2.0更新

摘要&#xff1a;基于OpenGL (ES)的跨平台2D/3D游戏开发框架libGDX不仅开源免费&#xff0c;而且具有极为强大的兼容性和高效性&#xff0c;近日&#xff0c;libGDX发布全新1.2.0版本&#xff0c;除修复Bug之外&#xff0c;还新增了OpenGL性能分析、gdx-ai等一系列功能扩展和方…