java8 日期时间处理
来源:互联网 发布:mysql 默认值约束 编辑:程序博客网 时间:2024/06/05 16:15
之前有个项目频繁用到年、月、周的数据库统计。为此专门写了一个蛮复杂的工具类。最近了解了一下java8的新日期时间类库,简直方便到感人。重构了一下代码,行数少了多一半,有些方法直接删掉了,因为已经自带了。适用多种业务场景:展示、统计、设置有效期、增加/减少日期、日期比较等。
package com.utils.zjc;import java.time.DayOfWeek;import java.time.Instant;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.ZoneId;import java.time.format.DateTimeFormatter;import java.time.temporal.TemporalAdjusters;public class DateMethod8{//把毫秒数转换为标准日期时间字符串public String formatMilliSecond(long milliSeconds) {ZoneId z=ZoneId.systemDefault();Instant instant = Instant.now();LocalDateTime datetime = LocalDateTime.ofEpochSecond(milliSeconds/1000, 0,z.getRules().getOffset(instant));DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");return datetime.format(formatter);}//获取当前日期时间字符串public String getNowDateAndTimeString() {LocalDateTime now = LocalDateTime.now();DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");return now.format(formatter);}//获取当前日期字符串public String getNowDateString() {LocalDate today=LocalDate.now();return today.toString();}//获取当前时间字符串public String getNowTimeString() {LocalTime now = LocalTime.now();DateTimeFormatter formatter=DateTimeFormatter.ofPattern("HH:mm:ss");return now.format(formatter);}//获取某年某月第一天public String getYearMonthFirstDayString(int year, int month) throws Exception {if(month<1||month>12){throw new Exception("invalid parameters");}Integer iyear = Integer.valueOf(year);Integer imonth = Integer.valueOf(month);if(month<10){return iyear.toString()+"-0"+imonth.toString()+"-01 00:00:00";}else{return iyear.toString()+"-"+imonth.toString()+"-01 00:00:00";}}//获取某年某月最后一天public String getYearMonthLastDayString(int year, int month) throws Exception {if(month<1||month>12){throw new Exception("invalid parameters");}LocalDate date = LocalDate.of(year,month,1);Integer lastday=date.getMonth().length(date.isLeapYear());Integer iyear = Integer.valueOf(year);Integer imonth = Integer.valueOf(month);if(month<10){return iyear.toString()+"-0"+imonth.toString()+"-"+lastday.toString()+" 23:59:59";}else{return iyear.toString()+"-"+imonth.toString()+"-"+lastday.toString()+" 23:59:59";}}//获取某年某月某日所在周的某一天public String getWeekDayString(int year, int month, int day, DayOfWeek dow) throws Exception{try{LocalDate date = LocalDate.of(year,month,day);LocalDate newDate = date.with(TemporalAdjusters.nextOrSame(dow));return newDate.toString();}catch(Exception e){throw new Exception("invalid parameters");}}public static void main(String[] args){LocalDateTime now = LocalDateTime.now();LocalDateTime nextMonth = now.plusMonths(1); //向后延续一个月DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");System.out.println(nextMonth.format(formatter));int compareResult = nextMonth.compareTo(now); //比较日期和时间if(compareResult>0){System.out.println("晚于当前");}else if(compareResult==0){System.out.println("相同");}else{System.out.println("早于当前");};LocalDate temp = LocalDate.now();System.out.println(temp.with(TemporalAdjusters.lastDayOfMonth()));//月末一天的另一种方法Duration dtime = Duration.between(now, nextMonth); //计算时间间隔long seconds = dtime.getSeconds();//秒表示 long millis = dtime.toMillis();//毫秒表示System.out.println(seconds);System.out.println(millis);try{LocalDate newDate = LocalDate.of(2005,2,28); //验证日期有效性LocalDateTime newTime = LocalDateTime.of(newDate, LocalTime.now());System.out.println("日期有效");System.out.println(newTime.format(formatter));}catch(Exception e){System.out.println("日期无效");}}}
阅读全文
0 0
- java8 日期时间处理
- Java8 日期时间处理类
- Java8中的日期与时间处理
- java8 日期 时间 时区
- java8 构造日期时间
- Java8中的日期时间
- Java8时间日期格式化
- java8 日期 时间 时区
- 如何在java8中愉快地处理日期和时间java8新增了localdate和localtim
- java8的时间处理
- Java8 时间处理
- Java8中的时间和日期
- Java8日期和时间API
- Java8 日期和时间实用技巧
- Java8的日期、时间类
- java8日期时间API(一)
- 使用java8轻松处理日期
- JAVA8中时间的处理
- linux常用命令
- JAVA集合
- js scrollTop
- pandas的应用案例
- Freemaker页面的注释
- java8 日期时间处理
- LVM逻辑卷
- Linux的第一节课
- 蓝牙nrf51822空中升级
- ORA-01654 问题解决
- 百度地图批量顺序转换经纬度防止顺序错位
- svn环境的搭建与命令行基本使用
- Gym--100952B--New Job
- springMVC——@RequestParam