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中的时间处理的更多相关文章

  1. java8 中的时间和数据的变化

    java8除了lambda表达式之外还对时间和数组这两块常用API做想应调整, Stream 有几个常用函数: store 排序 (a,b)-> a.compareTo(b)  排出来的结果是正 ...

  2. Java8 中的时间和日期 API

    1. 日期和时间概述 LocalDate,LocalTime,LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601 日历系统 的日期,时间,日期和时间;它们提供了简单的日期 ...

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

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

  4. Java8中的LocalDateTime工具类

    网上搜索了半天都没有找到Java8的LocalDateTime的工具类,只好自己写了一个,常用功能基本都有.还在用Date的Java同道该换换了. 个人项目地址:https://github.com/ ...

  5. java8中的接口与时间操作

    java8中接口可以有默认方法(用default修饰,可以有多个)和静态方法了. public interface Tran { default public String getName() { r ...

  6. 都9012了,Java8中的日期时间API你还没有掌握?

    一,Java8日期时间API产生的前因后果 1.1 为什么要重新定义一套日期时间API 操作不方便:java中最初的Date不能直接对指定字段进行加减操作也不支持国际化,后来新增了Calendar,但 ...

  7. 【Java8新特性】关于Java8中的日期时间API,你需要掌握这些!!

    写在前面 Java8之前的日期和时间API,存在一些问题,比如:线程安全的问题,跨年的问题等等.这些问题都在Hava8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大.立志 ...

  8. Java8中时间日期库的20个常用使用示例

    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API.Java对日期, ...

  9. Java8中Instant和LocalDate来计算时间或者日期间隔

    /** * java.time.Instant * java.time.Duration * Instant 默认使用UTC时区:2019-01-24T14:01:32.258Z * mongo中的时 ...

随机推荐

  1. js 事件模型

    说到事件,就要追溯到网景与微软的“浏览器大战”了.当时,事件模型还没有标准,两家公司的实现就是事实标准.网景在Navigator中实现了“事件捕获”的事件系统,而微软则在IE中实现了一个基本上相反的事 ...

  2. 部署WEB项目到服务器(二)安装tomcat到linux服务器(Ubuntu)详解

    突发奇想,想在自己电脑上部署一个web网站. 1,先去tomcat官网下载一个适合linux的版本:tar.gz 2,然后通过FileZIlla传到服务器的/opt目录: 3,然后创建目录 并解压缩 ...

  3. springboot:spring data jpa介绍

    转载自:https://www.cnblogs.com/ityouknow/p/5891443.html 在上篇文章springboot(二):web综合开发中简单介绍了一下spring data j ...

  4. PrimeNG之FileUpload

    --文件上传是一个支持拖放,多文件上传,自动上传,进度跟踪和验证的上传. Import import {FileUploadModule} from 'primeng/primeng'; Gettin ...

  5. 目标检测(七)YOLOv3: An Incremental Improvement

    项目地址 Abstract 该技术报告主要介绍了作者对 YOLOv1 的一系列改进措施(注意:不是对YOLOv2,但是借鉴了YOLOv2中的部分改进措施).虽然改进后的网络较YOLOv1大一些,但是检 ...

  6. IE、360浏览器select属性onchange遇到的坑

    在网页头部定义js代码 <script type="text/javascript"> function gradeChange(e){ var selectId = ...

  7. hadoop执行 报错

    Error: java.io.IOException: Initialization of all the collectors failed. Error in last collector was ...

  8. CentOS 7 系统优化

    系统调优4大子系统 1:找出系统中使用CPU最多的进程 2:找出系统中使用内存最多的进程 3:找出系统中对磁盘读写最多的进程 4:找出系统中使用网络最多的进程 系统调优概述 系统的运行状况:  CPU ...

  9. 152. Maximum Product Subarray(动态规划)

    Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...

  10. js页面路径拼接字符串进行参数传递

    页面路径拼接字符串进行参数传递: 参数传递页面: <style> input,button{ border: 1px solid red; } body { font-size:24px; ...