1.8 全新日期api

  1 /**
  2  *
  3  * @note
  4  * @author zhouyy <br>
  5  * Apr 14, 2017 5:21:12 PM
  6  * @version
  7  */
  8 package com.bytter.util;
  9
 10 import java.text.ParseException;
 11 import java.text.SimpleDateFormat;
 12 import java.time.LocalDate;
 13 import java.time.LocalDateTime;
 14 import java.time.format.DateTimeFormatter;
 15 import java.time.temporal.TemporalAdjusters;
 16 import java.util.Date;
 17
 18 /**
 19  *
 20  * @note
 21  * @author zhouyy <br>
 22  * Apr 14, 2017 5:21:12 PM
 23  * @version
 24  */
 25 public class NewDate {
 26
 27     /**
 28      * 获取当前日期 格式 LocalDate
 29      *
 30      * @return
 31      */
 32     public static LocalDate getLocalDateNow() {
 33         return LocalDate.now();
 34     }
 35
 36
 37     /**
 38      * LocalDate 转 String
 39      *
 40      * @param date
 41      * @return
 42      */
 43     public static String getLocalDateStr(LocalDate date, String pattern) {
 44         return date.format(DateTimeFormatter.ofPattern(pattern));
 45     }
 46
 47     /**
 48      * 取得日期所在月的最后一天 LocalDate
 49      *
 50      * @param date
 51      * @return String
 52      */
 53     public static String getLastMonthDay(LocalDate date) {
 54         return date.with(TemporalAdjusters.lastDayOfMonth()).toString();
 55     }
 56
 57
 58     /**
 59      * 把字符串转成 LocalDate <br>
 60      * strDate 格式就是 aMask
 61      *
 62      * @param aMask
 63      * @param strDate
 64      * @return
 65      */
 66     public static LocalDate getLocalDate(String aMask, String strDate) {
 67         return LocalDate.parse(strDate, DateTimeFormatter.ofPattern(aMask));
 68     }
 69
 70     /**
 71      * java.sql.Date 转 LocaDate<br>
 72      * jdk1.8
 73      *
 74      * @param date
 75      * @return
 76      */
 77     public static LocalDate sqlDateTolocalDate(java.sql.Date date) {
 78         return date.toLocalDate();
 79     }
 80
 81     /**
 82      * java.util.Date 转 LocaDate
 83      *
 84      * @param date
 85      * @return
 86      */
 87     public static LocalDate DateTolocalDate(Date date) {
 88         return sqlDateTolocalDate(new java.sql.Date(date.getTime()));
 89     }
 90
 91     /**
 92      * LocalDate 转 java.util.Date
 93      *
 94      * @param date
 95      * @return
 96      */
 97     public static Date localDateToDate(LocalDate date) {
 98         try {
 99             return new SimpleDateFormat("yyyy-MM-dd").parse(date.toString());
100         } catch (ParseException e) {
101             System.out.println("LocalDate类型 日期转 Date 报错");
102             e.printStackTrace();
103         }
104         return null;
105     }
106
107     /**
108      * LocalDate 转 java.sql.Date
109      *
110      * @param date
111      * @return
112      */
113     public static java.sql.Date localDateToSqlDate(LocalDate date) {
114         return new java.sql.Date(localDateToDate(date).getTime());
115     }
116
117     /**
118      * 两日期间隔天数
119      *
120      * @param date
121      * @param compareDate
122      * @return
123      */
124     public static int getSubDayOfDate(LocalDate date, LocalDate compareDate) {
125         return (int) (date.toEpochDay() - compareDate.toEpochDay());
126     }
127
128     /**
129      * date 加/减 天 对应的日期
130      *
131      * @param date
132      * @param day
133      * @return
134      */
135     public static LocalDate getBeforeAfterDate(LocalDate date, int day) {
136         return date.plusDays(day);
137     }
138
139     /**
140      * date 加/减月 对应的日期
141      *
142      * @param date
143      * @param day
144      * @return
145      */
146     public static LocalDate getBeforeAfterMonth(LocalDate date, int month) {
147         return date.plusMonths(month);
148     }
149
150     /**
151      * date 加/减年 对应的日期
152      *
153      * @param date
154      * @param day
155      * @return
156      */
157     public static LocalDate getBeforeAfterYear(LocalDate date, int year) {
158         return date.plusYears(year);
159     }
160
161     /**
162      * LocalDateTime 类型转 string
163      *
164      * @param dateTime
165      * @return
166      */
167     public static String getLocalDateTime(LocalDateTime dateTime, String pattern) {
168         return dateTime.format(DateTimeFormatter.ofPattern(pattern));
169     }
170
171
172
173
174
175
176
177 }
时间: 2024-08-11 07:42:34

1.8 全新日期api的相关文章

Java 8时间和日期API 20例

伴随lambda表达式.streams以及一系列小优化,Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API.Java处理日期.日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限.Java也意识到需要一个更好的 API来满足社区中已经习惯了使用JodaTime API的人们.全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant). 长

java8 - 新的时间日期API示例

Java 8之前的库对时间和日期的支持非常不理想,不用担心,在Java 8中引入全新的时间和日期API,并且都是线程安全的 新时间日期API常用对象介绍 LocalDate: 表示没有时区的日期, LocalDate是不可变且线程安全 LocalTime: 表示没有时区的时间, LocalTime是不可变且线程安全 LocalDateTime: 表示没有时区的日期时间, LocalDateTime是不可变且线程安全 ZoneId: 时区ID,用来确定Instant和LocalDateTime互相

Linux 设置系统时间和日期 API

嵌入式Linux 设置时间和日期 API ,它是busybox要提取的源代码. Linux设置时间和日期的步骤: 1. 设置系统时间和日期: 2. 该系统的时间和日期,同步到硬件. #include <stdio.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <time.h> #inc

Java中日期API常见问题整理

今天在使用Java日期API的时候遇到的一些问题,自己整理了下.貌似JDK8中有关于时间行的API,可是JDK8用的还不是很多,先弄明白7的相关知识. 问题1:如何以制定格式显示时间? 问题2:如何计算时间间隔? 问题3:如何计算指定时间间隔以后的时间? 下面直接上代码(使用JUnit4进行测试): import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import j

Java8新的日期API LocalDate, LocalTime

前言 由于Java Date的各种问题,Java8推出了新的日期API,很受一拨人的追捧. 为什么我们需要新的Java日期/时间API? 在开始研究Java 8日期/时间API之前,让我们先来看一下为什么我们需要这样一个新的API.在Java中,现有的与日期和时间相关的类存在诸多问题,其中有: Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义. java.util.Date同时包含日期和时间,而ja

java8-新的日期API

背景 java的日期和时间API设计不理想,java8引入新的时间和日期API就是为了解决这个问题. 老的日期API的核心类 缺点 Date 月从0开始,年最小从1900年开始,没有时区的概念 Calendar 月从0开始 DateFormat 线程不安全 其它 同时存在Date和Calendar难以选择: Date和Calendar类都是可变的,维护噩梦 java8引入了类似joda-time的新特性.核心类如下: LocalDate 标识日期.下面是javadoc的翻译: 日期没有时区,处在

Java 日期 Api

1 public class TimeTest { 2 3 public static void main(String[] args) { 4 Date d1 = new Date(); 5 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss"); 6 System.out.println(sdf.format(d1)); 7 8 Calendar c1 = Calendar.getInstance();

java课堂笔记------日期API

* 默认创建出来的Date实例表示当前系统时间 Date date = new Date(); * 获取Date内部维护的long值 long l = date.getTime(); * 支持传入long值的构造方法 * 创建的Date就表示该long值所表示的时间 Date now = new Date(1000*60*60*24); * 也可以在现有的Date对象上调用setTime方法 * 将long值传入,使其表示这个时间 date.setTime(1000*60*60*24); * j

java笔记------日期API

涉及的一些api: Calendar calendar = Calendar.getInstance(); calendar.getTime();calendar.setTime(date);calendar.set(Calendar.YEAR,2000);calendar.get(Calendar.DATE);calendar.add(Calendar.DAY_OF_YEAR, 10);calendar.getActualMaximum(Calendar.DAY_OF_MONTH); cale