/**
*
* @note
* @author zhouyy <br>
* Apr 14, 2017 5:21:12 PM
* @version
*/
package com.bytter.util; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Date; /**
*
* @note
* @author zhouyy <br>
* Apr 14, 2017 5:21:12 PM
* @version
*/
public class NewDate { /**
* 获取当前日期 格式 LocalDate
*
* @return
*/
public static LocalDate getLocalDateNow() {
return LocalDate.now();
} /**
* LocalDate 转 String
*
* @param date
* @return
*/
public static String getLocalDateStr(LocalDate date, String pattern) {
return date.format(DateTimeFormatter.ofPattern(pattern));
} /**
* 取得日期所在月的最后一天 LocalDate
*
* @param date
* @return String
*/
public static String getLastMonthDay(LocalDate date) {
return date.with(TemporalAdjusters.lastDayOfMonth()).toString();
} /**
* 把字符串转成 LocalDate <br>
* strDate 格式就是 aMask
*
* @param aMask
* @param strDate
* @return
*/
public static LocalDate getLocalDate(String aMask, String strDate) {
return LocalDate.parse(strDate, DateTimeFormatter.ofPattern(aMask));
} /**
* java.sql.Date 转 LocaDate<br>
* jdk1.8
*
* @param date
* @return
*/
public static LocalDate sqlDateTolocalDate(java.sql.Date date) {
return date.toLocalDate();
} /**
* java.util.Date 转 LocaDate
*
* @param date
* @return
*/
public static LocalDate DateTolocalDate(Date date) {
return sqlDateTolocalDate(new java.sql.Date(date.getTime()));
} /**
* LocalDate 转 java.util.Date
*
* @param date
* @return
*/
public static Date localDateToDate(LocalDate date) {
try {
return new SimpleDateFormat("yyyy-MM-dd").parse(date.toString());
} catch (ParseException e) {
System.out.println("LocalDate类型 日期转 Date 报错");
e.printStackTrace();
}
return null;
} /**
* LocalDate 转 java.sql.Date
*
* @param date
* @return
*/
public static java.sql.Date localDateToSqlDate(LocalDate date) {
return new java.sql.Date(localDateToDate(date).getTime());
} /**
* 两日期间隔天数
*
* @param date
* @param compareDate
* @return
*/
public static int getSubDayOfDate(LocalDate date, LocalDate compareDate) {
return (int) (date.toEpochDay() - compareDate.toEpochDay());
} /**
* date 加/减 天 对应的日期
*
* @param date
* @param day
* @return
*/
public static LocalDate getBeforeAfterDate(LocalDate date, int day) {
return date.plusDays(day);
} /**
* date 加/减月 对应的日期
*
* @param date
* @param day
* @return
*/
public static LocalDate getBeforeAfterMonth(LocalDate date, int month) {
return date.plusMonths(month);
} /**
* date 加/减年 对应的日期
*
* @param date
* @param day
* @return
*/
public static LocalDate getBeforeAfterYear(LocalDate date, int year) {
return date.plusYears(year);
} /**
* LocalDateTime 类型转 string
*
* @param dateTime
* @return
*/
public static String getLocalDateTime(LocalDateTime dateTime, String pattern) {
return dateTime.format(DateTimeFormatter.ofPattern(pattern));
} }

1.8 全新日期api的更多相关文章

  1. Java 8时间和日期API 20例

    本文由 ImportNew - Sandy 翻译自 javarevisited.欢迎加入翻译小组.转载请见文末要求. 伴随lambda表达式.streams以及一系列小优化,Java 8 推出了全新的 ...

  2. java8新特性——时间日期API

    传统的时间 API 存在线程安全的问题,在多线程开发中必须要上锁,所以 java8 现在为我们提供了一套全新的时间日期 API ,今天进来学习一下java8 的时间日期 API. 一.使用 Local ...

  3. Java8新特性(三)——Optional类、接口方法与新时间日期API

    一.Optional容器类 这是一个可以为null的容器对象.如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象. 查看结构图可以看到有如下常用方法: of(T)—— ...

  4. 日期API

    Java 8 在包java.time下包含了一组全新的时间日期API.下面的例子展示了这组新API里最重要的一些部分: 1.Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时 ...

  5. Java 8 新的时间日期 API

    1. 概述 1.1 简介 Java 8 引入了一套全新的时间日期API,操作起来更简便.简单介绍下,LocalDate和LocalTime和LocalDateTime的使用: java.util.Da ...

  6. [转]JavaSE 8—新的时间和日期API

    为什么我们需要一个新的时间日期API Java开发中一直存在一个问题,JDK提供的时间日期API一直对开发者没有提供良好的支持. 比如,已有的的类(如java.util.Date和SimpleDate ...

  7. Linux 设置系统时间和日期 API

    嵌入式Linux 设置时间和日期 API ,它是busybox要提取的源代码. Linux设置时间和日期的步骤: 1. 设置系统时间和日期: 2. 该系统的时间和日期,同步到硬件. #include ...

  8. Java 8 的时间日期 API

    上一篇文章『Java 的时间日期 API』中,我们学习了由 Date.Calendar,DateFormat 等组成的「传统时间日期 API」,但是传统的处理接口设计并不是很友好,不易使用.终于,Ja ...

  9. (转载)Java8新的日期API LocalDate, LocalTime

    前言 由于Java Date的各种问题,Java8推出了新的日期API,很受一拨人的追捧. 为什么我们需要新的Java日期/时间API? 在开始研究Java 8日期/时间API之前,让我们先来看一下为 ...

随机推荐

  1. CAS导致的ABA问题及解决:时间戳原子引用AtomicReference、AtomicStampedReference

    1.CAS导致ABA问题: CAS算法实现一个重要前提需要取出内存中某时刻的数据并在当下时刻比较并交换,那么在这个时间差中会导致数据的变化. 比如:线程1从内存位置V中取出A,这时线程2也从V中取出A ...

  2. Linux mv命令(7)

    mv命令,move的缩写,顾名思义是移动文件的意思.其实就相当于剪切操作,而前面说的cp命令,就是复制粘贴,这两个有什么区别想必不用多说. 基本使用 使用格式 mv 源文件 目标文件 我的根目录下有 ...

  3. poj 1061 青蛙的约会+拓展欧几里得+题解

    青蛙的约会+拓展欧几里得+题解 纵有疾风起 题意 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出 ...

  4. Mac 基于Anaconda的TensorFlow安装笔记

    最近在中国大学MOOC平台学习北大的曹健老师上的“人工智能实践——Tensorflow”课程,开始我的人工智能之旅.第一天,讲解如何搭建实验室环境,我是mac系统,所以只写mac系统上的实验室环境安装 ...

  5. allure 这么高大上的测试报告环境,5 分钟搞定

    allure 的测试报告是老板喜欢的样子.如果能用上 allure,干嘛还选择其他的测试报告类型呢?python 的 pytest 单元测试框架有 allure 的插件,可以很方便的在 python ...

  6. 3.学习Dispatcher

    3.学习Dispatcher 不管是WinForm应用程序还是WPF应用程序,实际上都是一个进程,一个进程可以包含多个线程,其中有一个是主线程,其余的是子线程. 在WPF或WinForm应用程序中,主 ...

  7. 088、Docker 如何支持多种日志方案 (2019-05-10 周五)

    参考https://www.cnblogs.com/CloudMan6/p/7762369.html   将容器日志发送到 STDOUT 和 STDERR 是Docker 的默认日志行为.实际上,Do ...

  8. div悬浮在屏幕的中间及点击按钮关闭弹出框

    #fd { position: fixed; z-index: 999; width: 109px; height: 323px; top: 71%; right: 1%; margin: -50px ...

  9. Android 关于悬浮窗权限的问题

    正常情况下的处理: dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)以及在清单文件中添加 <use ...

  10. batch文件改修中遇到的sql问题

    代码: <?php ////////////////////////////////////////////////////////// // //ダイハツ車種 car_cd毎 平均価格 JSO ...