时间:2021-05-20
Java 8 是如何处理时间及日期的
示例 1 如何 在 Java 8 中获取当天的日期
LocalDate today = LocalDate.now(); System.out.println("Today's Local date : " + today); Output Today's Local date : 2020-01-14示例 2 如何在 Java 8 中获取当前的年月日
LocalDate today = LocalDate.now(); int year = today.getYear(); int month = today.getMonthValue(); int day = today.getDayOfMonth(); System.out.printf("Year : %d Month : %d day : %d \t %n", year, month, day); Output Today's Local date : 2020-01-14 Year : 2020 Month : 1 day : 14示例 3 在 Java 8 中如何获取某个特定的日期
LocalDate dateOfBirth = LocalDate.of(2010, 01, 14); System.out.println("Your Date of birth is : " + dateOfBirth); Output : Your Date of birth is : 2010-01-14示例 4 在 Java 8 中如何检查两个日期是否相等
LocalDate date1 = LocalDate.of(2020, 01, 14); if(date1.equals(today)){ System.out.printf("Today %s and date1 %s are same date %n", today, date1); } Output today 2020-01-14 and date1 2020-01-14 are same date示例 5 在 Java 8 中如何检查重复事件,比如说生日
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("Many Many happy returns of the day !!"); }else{ System.out.println("Sorry, today is not your birthday"); } Output: Many Many happy returns of the day !!示例 6 如何在 Java 8 中获取当前时间
LocalTime time = LocalTime.now(); System.out.println("local time now : " + time);Output local time now : 16:33:33.369 // in hour, minutes, seconds, nano seconds示例 7 如何增加时间里面的小时数
LocalTime time = LocalTime.now(); LocalTime newTime = time.plusHours(2); // adding two hours System.out.println("Time after 2 hours : " + newTime); Output : Time after 2 hours : 18:33:33.369示例 8 如何获取 1 周后的日期
LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS); System.out.println("Today is : " + today); System.out.println("Date after 1 week : " + nextWeek); Output: Today is : 2020-01-14 Date after 1 week : 2020-01-21示例 9 一年前后的日期
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);Output: Date before 1 year : 2019-01-14 Date after 1 year : 2021-01-14示例 10 在 Java 8 中使用时钟
// Returns the current time based on your system clock and set to UTC. Clock clock = Clock.systemUTC(); System.out.println("Clock : " + clock);// Returns time based on system clock zone Clock defaultClock = Clock.systemDefaultZone(); System.out.println("Clock : " + clock);Output: Clock : SystemClock[Z] Clock : SystemClock[Z]public class MyClass { private Clock clock; // dependency inject ... public void process(LocalDate eventDate) { if(eventDate.isBefore(LocalDate.now(clock)) { ... } } }示例 11 在 Java 中如何判断某个日期是在另一个日期的前面还是后面
LocalDate tomorrow = LocalDate.of(2020, 1, 15);if(tommorow.isAfter(today)){ System.out.println("Tomorrow comes after today"); } LocalDate yesterday = today.minus(1, DAYS); if(yesterday.isBefore(today)){ System.out.println("Yesterday is day before today"); }Output: Tomorrow comes after today Yesterday is day before today示例 12 在 Java 8 中处理不同的时区
// Date and time with timezone in Java 8 ZoneId america = ZoneId.of("America/New_York"); LocalDateTime localtDateAndTime = LocalDateTime.now(); ZonedDateTime dateAndTimeInNewYork = ZonedDateTime.of(localtDateAndTime, america ); System.out.println("Current date and time in a particular timezone : " + dateAndTimeInNewYork);Output : Current date and time in a particular timezone : 2020-01-14T16:33:33.373-05:00[America/New_York]Exception in thread "main" java.time.zone.ZoneRulesException: Unknown time-zone ID: ASIA/Tokyo at java.time.zone.ZoneRulesProvider.getProvider(ZoneRulesProvider.java:272) at java.time.zone.ZoneRulesProvider.getRules(ZoneRulesProvider.java:227) at java.time.ZoneRegion.ofId(ZoneRegion.java:120) at java.time.ZoneId.of(ZoneId.java:403) at java.time.ZoneId.of(ZoneId.java:351)示例 13 如何表示固定的日期,比如信用卡过期时间
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);Output: Days in month year 2020-01: 31 Your credit card expires on 2018-02示例 14 如何在 Java 8 中检查闰年
if(today.isLeapYear()){ System.out.println("This year is Leap year"); }else { System.out.println("2020 is not a Leap year"); }Output: 2020 is not a Leap year示例 15 两个日期之间包含多少天,多少个月
LocalDate java8Release = LocalDate.of(2020, Month.MARCH, 14); Period periodToNextJavaRelease = Period.between(today, java8Release); System.out.println("Months left between today and Java 8 release : " + periodToNextJavaRelease.getMonths() );Output: Months left between today and Java 8 release : 2示例 16 带时区偏移量的日期与时间
LocalDateTime datetime = LocalDateTime.of(2020, Month.JANUARY, 14, 19, 30); ZoneOffset offset = ZoneOffset.of("+05:30"); OffsetDateTime date = OffsetDateTime.of(datetime, offset); System.out.println("Date and Time with timezone offset in Java : " + date);Output : Date and Time with timezone offset in Java : 2020-01-14T19:30+05:30示例 17 在 Java 8 中如何获取当前时间戳
Instant timestamp = Instant.now(); System.out.println("What is value of this instant " + timestamp);Output : What is value of this instant 2020-01-14T08:33:33.379Z示例 18 如何在 Java 8 中使用预定义的格式器来对日期进行解析 / 格式化
String dayAfterTommorrow = "20200116"; LocalDate formatted = LocalDate.parse(dayAfterTommorrow, DateTimeFormatter.BASIC_ISO_DATE); System.out.printf("Date generated from String %s is %s %n", dayAfterTommorrow, formatted);Output : Date generated from String 20200116 is 2020-01-16示例 19 如何在 Java 中使用自定义的格式器来解析日期
String goodFriday = "Apr 18 2020"; 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(); }Output : Successfully parsed String Apr 18 2020, date is 2020-04-18示例 20 如何在 Java 8 中对日期进行格式化,转换成字符串
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(); }Output : Arriving at : Jan 14 2020 04:33 PM示例 21获取时间戳秒和毫秒
Instant ins= Instant.now();System.out.println("10位 秒"+ins.getEpochSecond());System.out.println("13位 毫秒"+ins.toEpochMilli());Java 8 中日期与时间 API 的几个关键点
总结
到此这篇关于Java 8新时间日期库java.time使用的文章就介绍到这了,更多相关Java 8新时间日期库java.time内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java8在包java.time下包含了一组全新的时间日期API。下面的例子展示了这组新API里最重要的一些部分:1.Clock时钟Clock类提供了访问当前日
LocalDate、LocalTime、LocalDateTime是Java8开始提供的时间日期API,主要用来优化Java8以前对于时间日期的处理操作。然而,
Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理。同样的,如果你现在依旧在项目中使用传统Date、Calendar和
简述时间日期处理是平时工作中使用非常频繁的逻辑,Java8中提供的新的时间类LocalDateTime和LocalDate,使日期处理可以更简单。友情提醒下,业
前言Java8的新特性:Lambda表达式、强大的StreamAPI、全新时间日期API、ConcurrentHashMap、MetaSpace。总得来说,Ja