java8中的时间处理
java8中关于时间的处理整理
package com.xb.utils; import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Date; /**
* Author Mr. Guo
* Create 2019/2/22 - 13:59
*/
public class dateFormatUtils {
//获取当天的日期(2019-02-26)
public static LocalDate getCurrentDate = LocalDate.now();
//获取当前的时间(18:41:32)
public static LocalTime getCurrentTime = LocalTime.now().withNano(0); //指定时间
public static LocalTime time(int hour, int minute, int second) {
return LocalTime.of(hour, minute, second);
} public static LocalTime time2(String time) {
return LocalTime.parse(time);
} //当前时间增加x小时
public static LocalTime nowTimePlusxHour(int incr) {
return dateFormatUtils.getCurrentTime.plusHours(incr);
} public static LocalTime nowTimePlusxHosr(int incr) {
return dateFormatUtils.getCurrentTime.plus(incr, ChronoUnit.HOURS);
} //生日检查或账单日检查
public static boolean judgeBirthday(int year, int month, int day, int cyear, int cmonth, int cday) {
LocalDate birthday = LocalDate.of(year, month, day);
MonthDay birthdayMd = MonthDay.of(birthday.getMonth(), birthday.getDayOfMonth());
MonthDay today = MonthDay.from(LocalDate.of(cyear, cmonth, cday));
return today.equals(birthdayMd);
} //比较当前日期是否在指定日期之后
public static boolean isAfterOrBefore(int year, int month, int day) {
LocalDate today = LocalDate.now();
LocalDate specifyDate = LocalDate.of(year, month, day);
return today.isAfter(specifyDate);
} //获取当前的时区(Asia/Shanghai)
public static ZoneId currentZone = ZoneId.systemDefault(); //查看指定时区的当前时间
public static LocalDateTime pointedDateTime(String zone) {
return LocalDateTime.now(ZoneId.of(zone));
} //获取带有时区的时间(2019-02-26T19:21:51.669+08:00[Asia/Shanghai])
public static ZonedDateTime zonedDateTime(String zone) {
return ZonedDateTime.now(ZoneId.of(zone));
} //比较两个日期的时间差
public static int periodDate(int syear, int smonth, int sday, String condition) {
LocalDate today = LocalDate.now();
LocalDate specifyDate = LocalDate.of(syear, smonth, sday);
Period period = Period.between(specifyDate, today);
if ("day".equals(condition))
return (int) specifyDate.until(today, ChronoUnit.DAYS);
if ("month".equals(condition))
return period.getMonths();
if ("year".equals(condition))
return period.getYears();
return -1;
} //日期时间格式解析、格式化
public static LocalDate dateParse(String specifyDate) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.BASIC_ISO_DATE;
return LocalDate.parse(specifyDate, dateTimeFormatter);
} //转为自定义格式的时间
public static String dateTimeFormatter(String regxDate, int cyear, int month, int cday, boolean ConverCurrentDate) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(regxDate);
if (ConverCurrentDate)
return dateTimeFormatter.format(LocalDate.now());
return dateTimeFormatter.format(LocalDate.of(cyear, month, cday));
} //时间类与Date类的相互转换
public static Instant DateConverInstant() {
Instant instant = Instant.now();
Date date = Date.from(instant);
Instant instant1 = date.toInstant();
return instant1;
} //date转换为LocalDateTime
public static LocalDateTime DateToLocalDateTime() {
Date date = new Date();
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
} //LocalDateTime转换为Date
public static Date LocalDateTimeToDate() {
LocalDateTime localDateTime = LocalDateTime.now();
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
} //LocalDate转Date
//LocalDate不包含时间,所以转换date的时候,会默认转为当天时间的,00:00:00
public static Date LocalDateToDate() {
LocalDate localDate = LocalDate.now();
Instant instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
} }
java8中的时间处理的更多相关文章
- java8 中的时间和数据的变化
java8除了lambda表达式之外还对时间和数组这两块常用API做想应调整, Stream 有几个常用函数: store 排序 (a,b)-> a.compareTo(b) 排出来的结果是正 ...
- Java8 中的时间和日期 API
1. 日期和时间概述 LocalDate,LocalTime,LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601 日历系统 的日期,时间,日期和时间;它们提供了简单的日期 ...
- Java8新特性时间日期库DateTime API及示例
Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和SimpleDateFormat等API ...
- Java8中的LocalDateTime工具类
网上搜索了半天都没有找到Java8的LocalDateTime的工具类,只好自己写了一个,常用功能基本都有.还在用Date的Java同道该换换了. 个人项目地址:https://github.com/ ...
- java8中的接口与时间操作
java8中接口可以有默认方法(用default修饰,可以有多个)和静态方法了. public interface Tran { default public String getName() { r ...
- 都9012了,Java8中的日期时间API你还没有掌握?
一,Java8日期时间API产生的前因后果 1.1 为什么要重新定义一套日期时间API 操作不方便:java中最初的Date不能直接对指定字段进行加减操作也不支持国际化,后来新增了Calendar,但 ...
- 【Java8新特性】关于Java8中的日期时间API,你需要掌握这些!!
写在前面 Java8之前的日期和时间API,存在一些问题,比如:线程安全的问题,跨年的问题等等.这些问题都在Hava8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大.立志 ...
- Java8中时间日期库的20个常用使用示例
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API.Java对日期, ...
- Java8中Instant和LocalDate来计算时间或者日期间隔
/** * java.time.Instant * java.time.Duration * Instant 默认使用UTC时区:2019-01-24T14:01:32.258Z * mongo中的时 ...
随机推荐
- Luogu 1177 - 【模板】快速排序 - [快速排序][归并排序][无旋Treap]
题目链接:https://www.luogu.org/problemnew/show/P1177 题意:输入 $n$ 以及后续 $n$ 个整数,让你将这 $n$ 个整数从小到大排序输出. 归并排序(用 ...
- rocketMQ安装部署详细解析
近来研究了Apache开源项目rocketMQ(原为阿里项目),并在两台linux服务器上完成了部署,现在整理下,供大家参考学习. 一.简介rocketMQRocektMQ是阿里巴巴在2012年开源的 ...
- cestos7安装zookeeper
zookeeper安装包下载地址http://archive.apache.org/dist/zookeeper/ 一.单机 在/usr目录下 curl -L-O http://archive.apa ...
- https SSL主流数字证书都有哪些格式(转载)
主流数字证书都有哪些格式? 一般来说,主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java. Tomcat.Weblogic.JBoss等,使用Java提供的密码库.通过Java的 ...
- 判断np.array里面为空字符串的方法
#多在编译器里尝试新操作 import numpy as np for i range(100): eval1 = {"A": ''"} eval2 = {"A ...
- 关闭图形界面下普通用户关机重启命令- 7.x - CentOS
vim /etc/polkit-/rules.d/-inhibit-shutdown.rules polkit.addRule(function(action, subject) { if (acti ...
- IP-v4&IP-v6
IPv6与IPv4区别: 1:IPv6的地址空间更大.IPv4中规定IP地址长度为32,即有2^32-1个地址: 而IPv6中IP地址的长度为128,即有2^128-1个地址. 2.IPv6的路由表更 ...
- 软件安全概念:认证 & 授权
认证 证明你是谁,这个过程就是认证 授权 你能干什么
- Objective-C不能以new开头命名属性
ARC是在Xcode4.2推出的方便内存管理的一个特性,支持OS10.6及iOS4以后版本.引入ARC之后,相对应的内存管理使用方面做了必要的调整,这里不一一赘述:其中有一项就是文章题目说的,为了与手 ...
- SpringIOC和AOP原理 设计模式
SpringIOC的特点 在接触Spring的过程中,听到最多的无非两个名词,一个是控制反转一个是依赖注入.实际这是一个意思,控制反转代表原来由程序本身去控制对象之间的依赖关系的这种格局被反转了,通过 ...