日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

java獲取時間戳精確到微秒講解 java獲取時間戳精確到毫秒

當(dāng)前時間加上時間戳關(guān)于日期的計算,很多朋友們都喜歡用時間戳來直接相加,比如希望得到當(dāng)前時間之后30天的時間,會這么寫代碼: 直接把 new Data().getTime() 方法得到的時間戳加上30天對應(yīng)的毫秒數(shù),也就是30天 * 24小時 * 3600秒 * 1000毫秒
Date today = new Date();Date nextMonth = new Date(today.getTime()+30*24*3600*1000);System.out.println(today);System.out.println(nextMonth);得到的結(jié)果可能會讓我失敗:
Sat Jul 10 07:41:30 CST 2021Sun Jun 20 14:38:43 CST 2021得到的日期竟然比當(dāng)前的日期還好早,你說怎么回事呢?
原因是:
因?yàn)?int 發(fā)生了溢出
怎樣修改呢?我們只要把 30改成30L即可,讓其成為long
Date today = new Date();Date nextMonth = new Date(today.getTime()+30L*24*3600*1000);System.out.println(today);System.out.println(nextMonth);結(jié)果:
Sat Jul 10 07:44:38 CST 2021Mon Aug 09 07:44:38 CST 2021使用Calendar在java8之前,我們一般使用Calendar類來實(shí)現(xiàn)
Calendar c = Calendar.getInstance();c.setTime(new Date());System.out.println(c.getTime());c.add(Calendar.DAY_OF_MONTH,30);System.out.println(c.getTime());結(jié)果:
Sat Jul 10 07:47:25 CST 2021Mon Aug 09 07:47:25 CST 2021java 8 日期時間使用 Java 8 的日期時間類型,可以直接進(jìn)行各種計算,更加簡潔和方便:
LocalDateTime localDateTime = LocalDateTime.now();System.out.println(localDateTime.plusDays(30));下面介紹LocalDateTime的基本用法:
1) 獲取一年、月、日
private LocalDateTime localDateTime = null;@Beforepublic void init(){localDateTime = LocalDateTime.now();}@Testpublic void test1(){System.out.println("Year:"+localDateTime.getYear());System.out.println("Month:"+localDateTime.getMonth().getValue());System.out.println("Day of Month:"+localDateTime.getDayOfMonth());System.out.println("Day of Week:"+ localDateTime.getDayOfWeek());System.out.println("Day of Year:"+localDateTime.getDayOfYear());}結(jié)果:
Year:2021Month:7Day of Month:10Day of Week:SATURDAYDay of Year:191

  1. 獲取小時、分鐘、秒
System.out.println("Hour:"+localDateTime.getHour());System.out.println("Minute :"+localDateTime.getMinute());System.out.println("Second:"+localDateTime.getSecond());System.out.println("Nano:"+localDateTime.getNano());結(jié)果:
【java獲取時間戳精確到微秒講解 java獲取時間戳精確到毫秒】Hour:8Minute :17Second:32Nano:50000000
  1. 對日期做加減
可以使用各種 minus 和 plus 方法直接對日期進(jìn)行加減操作,比如如下代碼實(shí)現(xiàn)了減一天和加一天,以及減一個月和加一個月
System.out.println("minus days:"+ localDateTime.minusDays(1));System.out.println("minus months:"+localDateTime.minusMonths(1));System.out.println("minus year: "+localDateTime.minusYears(1));System.out.println("minus Hours:"+localDateTime.minusHours(1));System.out.println("minus seconds:"+localDateTime.minusSeconds(1));
  1. 時間的比較
LocalDateTime 類提供以下API比較LocalDateTime 對象在Java中 。
  • boolean isAfter(ChronoLocalDateTime other):檢查此日期時間是否在指定日期時間之后 。
  • boolean isBefore(ChronoLocalDateTime other)
  • boolean isEqual(ChronoLocalDateTime other)
  • int compareTo(ChronoLocalDateTime other) 將此日期時間與其他日期時間進(jìn)行比較 。
LocalDateTime dateTime1 = LocalDateTime.of(2021,5,7,9,22,22);LocalDateTime dateTime2 = LocalDateTime.of(2021,6,7,9,22,22);LocalDateTime dateTime3 = LocalDateTime.of(2021,5,7,9,22,22);if(dateTime1.isBefore(dateTime2)){System.out.println("dateTime1 isbefore dateTime2");}if(dateTime2.isAfter(dateTime3)){System.out.println("dateTime2 isafter dateTime3");}if(dateTime1.equals(dateTime3)){System.out.println("dateTime1 is equal to dateTime3");}if(dateTime1.compareTo(dateTime3) ==0){System.out.println("dateTime1 is equal to dateTime3");}

推薦閱讀