java8时间使用小结

//LocalDate代表一个IOS格式(yyyy-MM-dd)的日期 获取当前的日期:
	LocalDate localDate = LocalDate.now();//LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的
	System.out.println("localDate: " + localDate);//localDate: 2017-08-24
	//LocalDate可以指定特定的日期,调用of或parse方法返回该实例:
	System.out.println(LocalDate.of(2017, 07, 20));//2017-07-20
	System.out.println(LocalDate.parse("2017-07-20"));//2017-07-20
	//为今天添加一天,也就是获取明天
	System.out.println(LocalDate.now().plusDays(1));//2017-08-25
	//为今天添加7天,也就是获取一个礼拜之后的今天
	System.out.println(LocalDate.now().plusWeeks(1));//2017-08-31
	//为今天添加一个月,也就是获取一个月后的今天
	System.out.println(LocalDate.now().plusMonths(1));//2017-09-24
	//为今天添加一年,也就是获取一年后的今天
	System.out.println(LocalDate.now().plusYears(1));//2018-08-24
	//从今天减去一个月  (跟加同理 可获取减去1天、 1个礼拜、  1年之后的时间)
	System.out.println(LocalDate.now().minus(1, ChronoUnit.MONTHS));//2017-07-24
	System.out.println(LocalDate.now().minusMonths(1));//2017-07-24
	//解析日期 2017-07-20,获取每周中的星期和每月中的日 等
	System.out.println("周四: " +LocalDate.parse("2017-07-20").getDayOfWeek());//THURSDAY
	System.out.println("日: " +LocalDate.parse("2017-07-20").getDayOfMonth());//20
	System.out.println("月: " +LocalDate.parse("2017-07-20").getMonthValue());//7
	System.out.println("年: " +LocalDate.parse("2017-07-20").getYear());//2017
	System.out.println("月: " +LocalDate.parse("2017-07-20").getMonth());//JULY
	//今年是不是闰年(闰年判断)
	System.out.println(LocalDate.now().isLeapYear());//false
	//判断是否在日期之前或之后:
	System.out.println(LocalDate.parse("2017-07-20").isAfter(LocalDate.parse("2017-07-21")));//false
	System.out.println(LocalDate.parse("2017-07-20").isBefore(LocalDate.parse("2017-07-21")));//true
	System.out.println(LocalDate.parse("2217-07-20").isBefore(LocalDate.parse("2017-07-21")));//false
	//获取这个月的第一天:
	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfMonth()));//2017-07-01
	//获取下个月的第一天,等等。。
	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfNextMonth()));//2017-08-01
	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.lastDayOfMonth()));//2017-07-31
	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfNextYear()));//2018-01-01
	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfYear()));//2017-01-01
	//判断今天是否是我的生日,例如我的生日是 2006-07-20
	LocalDate birthday = LocalDate.of(2006, 07, 20);
	MonthDay birthdayMd = MonthDay.of(birthday.getMonth(),birthday.getDayOfMonth());
	MonthDay today=MonthDay.from(LocalDate.now());
	System.out.println("今天是否是我的生日: " + today.equals(birthdayMd));//false
	System.out.println("=======LocalTime表示一个时间,而不是日期===========");
	//获取现在的时间 09:52:19.446
	System.out.println("现在的时间: " +LocalTime.now());
	//将一个字符串时间解析为LocalTime
	System.out.println( LocalTime.parse("15:02"));//15:02
	//使用静态方法of创建一个时间
	System.out.println(LocalTime.of(16, 02));//16:02
	//使用解析字符串的方式并添加一小时,输出16:02
	System.out.println(LocalTime.parse("15:02").plus(1, ChronoUnit.HOURS));//16:02
	System.out.println(LocalTime.parse("15:02").plus(10, ChronoUnit.MINUTES));//15:12
	//获取时间的小时、分钟
	System.out.println(LocalTime.parse("15:02").getHour());//15
	System.out.println(LocalTime.parse("15:02").getMinute());//2
	//检查一个时间是否在另一个时间之前、之后
	System.out.println(LocalTime.parse("15:02").isAfter(LocalTime.parse("14:02")));//true
	System.out.println(LocalTime.parse("15:02").isBefore(LocalTime.parse("14:02")));//false
	//每天的开始与结束时间
	System.out.println(LocalTime.MAX);//23:59:59.999999999
	System.out.println(LocalTime.MIN);//00:00
	System.out.println("=======LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一===========");
	System.out.println("现在: " +LocalDateTime.now());//2017-08-24T10:31:03.600
	//LocalDateTime也提供了相关API来对日期和时间进行增减操作
	System.out.println("明天的现在: " +LocalDateTime.now().plusDays(1));//2017-08-25T10:33:05.363
	//获取当前月份等等
	System.out.println(LocalDateTime.now().getMonthValue());//8
	System.out.println(LocalDateTime.now().getMonth());//AUGUST
	System.out.println(LocalDateTime.now().getYear());//2017
	//日期格式化
	System.out.println("======日期格式化=======");
	LocalDateTime now = LocalDateTime.now();
	DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
	System.out.println("默认格式化: " + now);
	System.out.println("自定义格式化: " + now.format(dateTimeFormatter));
	LocalDateTime localDateTime = LocalDateTime.parse("2017-07-20 15:27:44", dateTimeFormatter);
	System.out.println("字符串转LocalDateTime: " + localDateTime.format(dateTimeFormatter));

	DateTimeFormatter dateTimeFormatter_s = DateTimeFormatter.ofPattern("yyyy-MM-dd");
	String dateString = dateTimeFormatter_s.format(LocalDate.now());
	System.out.println("日期转字符串: " + dateString);
	//日期和周期 Period类用于修改给定日期或获得的两个日期之间的区别。
	LocalDate initialDate = LocalDate.parse("2017-07-20");
	LocalDate finalDate = initialDate.plus(Period.ofDays(5));//给初始化的日期添加5天
	System.out.println("初始化日期: " + initialDate);//2017-07-20
	System.out.println("加日期之后: " + finalDate);//2017-07-25
	//周期(Period)API中提供给我们可以比较两个日期的差别,像下面这样获取差距天数:(同理可以获取两个时间相差的小时、周、月、年)
	long between = ChronoUnit.DAYS.between(initialDate, finalDate);
	System.out.println("差距天数: " + between);//5
	//如何将Date类转换为Java8中的时间类
	//Date和Instant互相转换
	Date date = Date.from(Instant.now());
	Instant instant = date.toInstant();
	//Date转换为LocalDateTime
	/*LocalDateTime localDateTime_s = LocalDateTime.from(new Date());
	System.out.println(localDateTime_s);*/
	//LocalDateTime转Date
	Date date_s =
	Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
	System.out.println(date_s);
	//LocalDate转Date
	Date date_t =
	Date.from(LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
	System.out.println(date_t);

  

时间: 2024-09-30 14:25:50

java8时间使用小结的相关文章

sqlserver的时间函数小结

1.得到系统当前时间:SYSDATETIME()和GETDATE()函数.区别只是精度不一样 2. datepart(),datediff(),dateadd(). 示例:SELECT DATEADD(year, DATEDIFF(year, -1, SYSDATETIME()), -1);   结果:2014-12-31 00:00:00.000,其中系统当前时间:2014-08-18 19:20:58.6096869 分析:DATEDIFF(year, -1, SYSDATETIME())结

java8 时间使用

为什么需要新的时间API 文章来源:https://www.cnblogs.com/guozp/p/10342775.html 在Java 8之前的日期/时间API之前,现有的与日期和时间相关的类存在诸多问题,其中主要有: Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义 java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理.另外

Java8 时间日期类操作

Java8 时间日期类操作 Java8的时间类有两个重要的特性 线程安全 不可变类,返回的都是新的对象 显然,该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全的问题.同时Java8的时间类提供了诸多内置方法,方便了对时间进行相应的操作. 上图为Java8时间类的覆盖范围 相关的类有 LocalDate LocalTime LocalDateTime ZoneId ZonedDateTime Instant Instant类 Instant类用来表示格林威

Java8 时间处理类的使用实践(LocalDate...)

有了它,谁还在用Date?Calendar? 其实也不能这么绝对,毕竟还没到那个程度上.Java8 新增了处理时间的一组类(LocalDate.LocalDateTime.LocalTime),刚开始使用时觉得非常费劲,没有Calendar好用,但是真的使用之后觉得还是比较好用的啊.建议大家以后多多使用.废话少说,看代码~ 1.Date与LocalDate的互转 Date转LocalDate: Date date = new Date(); LocalDate localDate = date.

Java8 时间 API

前言 Java8 中最为人津津乐道的新改变恐怕当属函数式 API 的加入.但实际上,Java8 所加入的新功能远不止这个. 本文将基于<Java SE8 for the Really Impatient>的第 5 章,归纳一下 Java8 加入的位于java.time包下的日期和时间 API. 时间点与时间间隔 在我们常说的四维空间体系中,时间轴往往作为除长宽高三轴以外的第四轴.时间轴由无穷多个时间点组成,而两个时间点之间的距离组成一个时间间隔.相较于我们常说的日期.时间,时间点本身所携带的信

Java8新特性小结-接口与Lambda表达式

Java8的新特性相对于前版本(Java7)来说,主要体现在两个方面: 1.   接口定义与使用 2.   Lambda表达式对匿名内部类的简化使用. Java8新特性的具体表现如下: 1.在接口中的体现 (1)在接口中可以定义实体方法,但除原先的抽象方法外只能定义两种方法: A.公共的静态方法 如: package com.jasberyon.java8.interfacer; public interface InterfaceA { public static void sayHi(){

Javascript时间操作小结

来源:http://www.ido321.com/847.html 在项目需要一个计时器,效果如下: js代码 1: /*获取当前时间*/ 2: function getCurrentDate() 3: { 4: var timeStr = ''; 5: var curDate = new Date(); 6: var curMonth = curDate.getMonth()+1; //获取当前月份(0-11,0代表1月) 7: var curDay = curDate.getDate();

Java8时间的简单时间

package com.java8.date; import org.junit.Test; import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.*; public class DateTest { @Test public void LocalDateTest() { // of方法获取一个指定日期的

Java8 时间处理

Table of Contents 前言 时间单位和时区 时间点 时间段 时间的解析和格式化 时区时间 兼容旧接口 结语 前言 时间处理是一个经常会用到但又不那么好用的功能,其中的主要问题在于对人友好的时间格式的处理上. 在这一点上,Java8 提供了方便我们的使用的新的日期和时间接口. -- 当然了,Java8 出来都这么久了,这接口也不算新了 @[email protected] 时间单位和时区 时间是我们每天都在接触的东西,但我并不是很清楚和它的相关的一些概念,借着这次机会,去了解了时间处