博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8日期
阅读量:4299 次
发布时间:2019-05-27

本文共 4457 字,大约阅读时间需要 14 分钟。

Java 8中有一个叫LocalDate的类,它能用来表示今天的日期LocalDate today = LocalDate.now();int year = today.getYear();int month = today.getMonthValue();int day = today.getDayOfMonth();获取某个特定的日期LocalDate dateOfBirth = LocalDate.of(2010, 01, 14);检查两个日期是否相等LocalDate date1 = LocalDate.of(2014, 01, 14); if(date1.equals(today)){}检查重复事件,比如说生日MonthDay表示的是某个重复出现的日子LocalDate dateOfBirth = LocalDate.of(2010, 01, 14);MonthDay birthday = MonthDay.of(dateOfBirth.getMonth(), dateOfBirth.getDayOfMonth());MonthDay currentMonthDay = MonthDay.from(today);if(currentMonthDay.equals(birthday)){  System.out.println("birthday!!");}else{  System.out.println("not birthday!!");}获取当前时间LocalTime time = LocalTime.now();增加时间里面的小时数LocalTime time = LocalTime.now();LocalTime newTime = time.plusHours(2); 获取1周后的日期LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS);一年前后的日期LocalDate previousYear = today.minus(1, ChronoUnit.YEARS);System.out.println("Date before 1 year : " + previousYear);LocalDate nextYear = today.plus(1, YEARS);System.out.println("Date after 1 year : " + nextYear);判断某个日期是在另一个日期的前面还是后面LocalDate tomorrow = LocalDate.of(2014, 1, 15); 、if(tommorow.isAfter(today)){ System.out.println("Tomorrow comes after today");}LocalDate yesterday = today.minus(1, DAYS);if(yesterday.isBefore(today)){}处理不同的时区LocalDateTime localtDateAndTime = LocalDateTime.now();ZonedDateTime dateAndTimeInNewYork = ZonedDateTime.of(localtDateAndTime, america );表示固定的日期,比如信用卡过期时间YearMonth又是另一个组合,它代表的是像信用卡还款日,定期存款到期日,options到期日这类的日期YearMonth currentYearMonth = YearMonth.now(); System.out.printf("Days in month year %s: %d%n", currentYearMonth, currentYearMonth.lengthOfMonth());YearMonth creditCardExpiry = YearMonth.of(2018, Month.FEBRUARY);System.out.printf("Your credit card expires on %s %n", creditCardExpiry);检查闰年if(today.isLeapYear())两个日期之间包含多少天,多少个月LocalDate java8Release = LocalDate.of(2014, Month.MARCH, 14);Period periodToNextJavaRelease =Period.between(today, java8Release);System.out.println("Months left between today and Java 8 release : " + periodToNextJavaRelease.getMonths() );如何获取当前时间戳Instant timestamp = Instant.now();使用预定义的格式器来对日期进行解析/格式化String dayAfterTommorrow = "20140116";LocalDate formatted = LocalDate.parse(dayAfterTommorrow,DateTimeFormatter.BASIC_ISO_DATE);自定义的格式器来解析日期String goodFriday = "Apr 18 2014";try {  DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd yyyy");  LocalDate holiday = LocalDate.parse(goodFriday, formatter);  System.out.printf("Successfully parsed String %s, date is %s%n", goodFriday, holiday);} catch (DateTimeParseException ex) {  System.out.printf("%s is not parsable!%n", goodFriday);  ex.printStackTrace();}对日期进行格式化,转换成字符串LocalDateTime arrivalDate = LocalDateTime.now();try{  DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM dd yyyy hh:mm a");  String landing = arrivalDate.format(format);  System.out.printf("Arriving at : %s %n", landing);} catch (DateTimeException ex) {  System.out.printf("%s can't be formatted!%n", arrivalDate);  ex.printStackTrace();}Date转localDateDate date=new Date();LocalDate localDate=LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).toLocalDate();localDate转DateLocalDate localDate=LocalDate.now();Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());localDateTime转DateDate start=Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());获取本月月初(带时分秒)LocalDateTime startTime=LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()),LocalTime.MIN);获取本月月末(带时分秒) LocalDateTime endTime=LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()),LocalTime.MAX);只获取本月月初和月末日期(不带时分秒 )LocalDate.now().with(TemporalAdjusters.firstDayOfMonth())LocalDate.now().with(TemporalAdjusters.lastDayOfMonth())获取两个日期之间的日期ChronoUnit.DAYS.between(LocalDate.now(),LocalDate.of(2017,8,20));
LocalDate nowDate=LocalDate.now(); LocalDate create=LocalDate.of(2017,7,10); Long daysBetween=nowDate.toEpochDay()-create.toEpochDay()+1;

string转LocalDateLocalDate date=LocalDate.parse("20170713",DateTimeFormatter.ofPattern("yyyy-MM-dd"));DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//时间转为字符串LocalDateTime date =LocalDateTime.now(); String str = date.format(f); // 2014-11-07 14:10:36 //字符串转为时间 date = LocalDateTime.parse(str,f);

1.获取本周第一天
LocalDate nowDate = LocalDate.now();
LocalDate first = nowDate.with(DayOfWeek.MONDAY);
LocalDateTime start = LocalDateTime.of(nowDate.with(DayOfWeek.MONDAY),LocalTime.MIN);

 

 

 

转载地址:http://fqpws.baihongyu.com/

你可能感兴趣的文章
<a4j:keeyAlive>的英文介绍
查看>>
关于list对象的转化问题
查看>>
VOPO对象介绍
查看>>
suse创建的虚拟机,修改ip地址
查看>>
linux的挂载的问题,重启后就挂载就没有了
查看>>
docker原始镜像启动容器并创建Apache服务器实现反向代理
查看>>
docker容器秒死的解决办法
查看>>
管理网&业务网的一些笔记
查看>>
openstack报错解决一
查看>>
openstack报错解决二
查看>>
linux source命令
查看>>
openstack报错解决三
查看>>
乙未年年终总结
查看>>
子网掩码
查看>>
第一天上班没精神
查看>>
启动eclipse报错:Failed to load the JNI shared library
查看>>
eclipse安装插件的两种方式在线和离线
查看>>
linux下源的相关笔记(suse)
查看>>
linux系统分区文件系统划分札记
查看>>
Linux(SUSE 12)安装Tomcat
查看>>