Java8中时间日期库的20个常用使用示例
发布时间:2020-12-15 03:13:22 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 Instant——它代表的是时间戳 LocalDate——不包含具体时间的日期,比如2014-01-14。它可以用来存储生日,周年纪念日,入职日期等。 LocalTime——它
|
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
Java 8是如何处理时间及日期的示例1 如何 在Java 8中获取当天的日期LocalDate today = LocalDate.now(); System.out.println("Today's Local date : " + today);
Output
Today's Local date : 2014-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 : 2014-01-14
Year : 2014 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(2014,14); if(date1.equals(today)){
System.out.printf("Today %s and date1 %s are same date %n",today,date1);
}
Output
today 2014-01-14 and date1 2014-01-14 are same date
示例5 在Java 8中如何检查重复事件,比如说生日LocalDate dateOfBirth = LocalDate.of(2010,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 : 2014-01-14
Date after 1 week : 2014-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 : 2013-01-14
Date after 1 year : 2015-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(2014,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 : 2014-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 2014-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("2014 is not a Leap year");
}
Output: 2014 is not a Leap year
示例15 两个日期之间包含多少天,多少个月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() );
Output:
Months left between today and Java 8 release : 2
示例16 带时区偏移量的日期与时间LocalDateTime datetime = LocalDateTime.of(2014,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 : 2014-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 2014-01-14T08:33:33.379Z
示例18 如何在Java 8中使用预定义的格式器来对日期进行解析/格式化String dayAfterTommorrow = "20140116";
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 20140116 is 2014-01-16
示例19 如何在Java中使用自定义的格式器来解析日期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();
}
Output :
Successfully parsed String Apr 18 2014,date is 2014-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 2014 04:33 PM
Java 8中日期与时间API的几个关键点
以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
