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. stm8 同时使用dac和adc 采集异常,电平异常

    这种现象在早期的 使用stm8l151的dac 和adc相互干扰很厉害.后来通过读手册发现  相邻三个引脚一般不建议同时使用dac和adc.也就是这两种功能,引脚分配至少隔离三个引脚.内部为了节省成本 ...

  2. Ubuntu 18.04安装JDK并配置环境变量

    1.官网下载jdk 下载链接 http://www.oracle.com/technetwork/java/javase/downloads/index.html 可以根据自己的系统进行下载 2.进行 ...

  3. 黏包:传输过程中 read(不可靠)传输时由于网络造成黏包

    但是你在读取本地文件  不涉及传输文件时   read还是可靠的

  4. Python网络编程-Socket简单通信(及python实现远程文件发送)

    学习python中使用python进行网络编程,编写简单的客户端和服务器端进行通信,大部分内容来源于网络教程,这里进行总结供以后查阅. 先介绍下TCP的三次握手: 1,简单的发送消息: 服务器端: i ...

  5. UI自动化框架——构建思维

    目的:从Excel中获取列的值,传输到页面 技巧:尽可能的提高方法的重用率 Java包: 1.java.core包 3个类:1)日志(LogEventListener)扩展web driver自带的事 ...

  6. git本地仓库 push到远程仓库出现错误

    ! [rejected] master -> master (fetch first) error: failed to push some refs to hint: Updates were ...

  7. winfrom弹出窗口用timer控件控制倒计时20秒后关闭

    功能描述: 因为在程序退出时需要确认是否是误操作,所以加了密码输入的子窗体,子窗体在20秒内会自动关闭 代码如下: private int count; private void Form2_Load ...

  8. PHP环境安全加固

    随着使用 PHP 环境的用户越来越多,相关的安全问题也变得越来越重要.PHP 环境提供的安全模式是一个非常重要的内嵌安全机制,PHP 安全模式能有效控制一些 PHP 环境中的函数(例如system() ...

  9. 使用COE脚本绑定SQL Profile

    日常运维中,经常会遇到需要绑定好的执行计划的场景. 简单来说,就是将一个sql_id绑定好的plan_hash_value.如果没有使用到绑定变量,还需要把force_match设置为true. 用到 ...

  10. js对象添加动态属性

    在业务中,经常会遇到使用同个方法调用多个同类型接口,以下简单模拟两个API接口 // api-1 { code: 0, status: 200, title: 'web前端框架', list: [ { ...