欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java8中的LocalDateTime和Date一些時(shí)間操作方法

 更新時(shí)間:2020年04月01日 09:01:52   作者:小小華bk  
這篇文章主要介紹了Java8中的LocalDateTime和Date一些時(shí)間操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

先記錄下jdk8之前的一些幫助方法

判斷time是否在now的n天之內(nèi)

/**
  * 判斷time是否在now的n天之內(nèi)
  * @param time
  * @param now
  * @param n 正數(shù)表示在條件時(shí)間n天之后,負(fù)數(shù)表示在條件時(shí)間n天之前
  * @return
  */
 public static boolean belongDate(Date time, Date now, int n) {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar calendar = Calendar.getInstance(); //得到日歷
  calendar.setTime(now);//把當(dāng)前時(shí)間賦給日歷
  calendar.add(Calendar.DAY_OF_MONTH, n);
  Date before7days = calendar.getTime(); //得到n前的時(shí)間
  if (before7days.getTime() < time.getTime()) {
   return true;
  } else {
   return false;
  }
 }

判斷某個(gè)時(shí)間是否是在條件的起始時(shí)間與結(jié)束時(shí)間之內(nèi)

/**
  * 判斷time是否在from,to之內(nèi)
  *
  * @param time 指定日期
  * @param from 開(kāi)始日期
  * @param to 結(jié)束日期
  * @return
  */
 public static boolean belongCalendar(Date time, Date from, Date to) {
  Calendar date = Calendar.getInstance();
  date.setTime(time);
 
  Calendar after = Calendar.getInstance();
  after.setTime(from);
 
  Calendar before = Calendar.getInstance();
  before.setTime(to);
 
  if (date.after(after) && date.before(before)) {
   return true;
  } else {
   return false;
  }
 }

判斷給定時(shí)間與當(dāng)前時(shí)間相差多少天

public static long getDistanceDays(String date) {
  DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  long days = 0;
  try {
   Date time = df.parse(date);//String轉(zhuǎn)Date
   Date now = new Date();//獲取當(dāng)前時(shí)間
   long time1 = time.getTime();
   long time2 = now.getTime();
   long diff = time1 - time2;
   days = diff / (1000 * 60 * 60 * 24);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return days;//正數(shù)表示在當(dāng)前時(shí)間之后,負(fù)數(shù)表示在當(dāng)前時(shí)間之前
 }

將Date轉(zhuǎn)換成String

private static final String LONG_PATTERN="yyyy-MM-dd HH:mm:ss";
 private static final String SHORT_PATTERN="yyyy-MM-dd";
 
 /**
  * 將日期轉(zhuǎn)換為字符串
  */
 public static String parse( Date d, String pattern){
  DateFormat df=null;
  if( pattern!=null && !"".equals(pattern) ){
   df=new SimpleDateFormat(pattern);
  }else{
   df=new SimpleDateFormat(LONG_PATTERN);
  }
  return df.format( d );
 }

將String轉(zhuǎn)換成Date

 private static final String LONG_PATTERN="yyyy-MM-dd HH:mm:ss";
 private static final String SHORT_PATTERN="yyyy-MM-dd";
 
/**
  * 將字符串轉(zhuǎn)為日期
  */
 public static Date parseStringToDate(String str, String pattern){
  DateFormat df = null;
  if( pattern!=null && !"".equals(pattern) ){
   df=new SimpleDateFormat( pattern );
  }else{
   df=new SimpleDateFormat( LONG_PATTERN );
  }
  Date d=null;
  try {
   d=df.parse(str);
  } catch (ParseException e) {
   e.printStackTrace();
  }
  return d;
 
 }

獲取指定年后的日期(例如三年后的日期)

Calendar date = Calendar.getInstance();
  date.setTime(new Date());
  date.add(Calendar.YEAR, +3);
  //倒計(jì)時(shí)結(jié)束后的時(shí)間
  Date scrap_year = date.getTime();
  System.out.println("三年后時(shí)間" + scrap_year);

Jdk8改革

LocalDateTime獲取毫秒數(shù)

//獲取秒數(shù)
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
//獲取毫秒數(shù)
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
 
LocalDateTime與String互轉(zhuǎn)
//時(shí)間轉(zhuǎn)字符串格式化
 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
 String dateTime = LocalDateTime.now(ZoneOffset.of("+8")).format(formatter);
 
//字符串轉(zhuǎn)時(shí)間
String dateTimeStr = "2018-07-28 14:11:15";
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, df);

Date與LocalDateTime互轉(zhuǎn)

//將java.util.Date 轉(zhuǎn)換為java8 的java.time.LocalDateTime,默認(rèn)時(shí)區(qū)為東8區(qū)
 public static LocalDateTime dateConvertToLocalDateTime(Date date) {
  return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();
 }
 
 
 //將java8 的 java.time.LocalDateTime 轉(zhuǎn)換為 java.util.Date,默認(rèn)時(shí)區(qū)為東8區(qū)
 public static Date localDateTimeConvertToDate(LocalDateTime localDateTime) {
  return Date.from(localDateTime.toInstant(ZoneOffset.of("+8")));
 }

將LocalDateTime轉(zhuǎn)為自定義的時(shí)間格式的字符串

public static String getDateTimeAsString(LocalDateTime localDateTime, String format) {
 DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
 return localDateTime.format(formatter);
}

將某時(shí)間字符串轉(zhuǎn)為自定義時(shí)間格式的LocalDateTime

public static LocalDateTime parseStringToDateTime(String time, String format) {
 DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
 return LocalDateTime.parse(time, df);
}

將long類型的timestamp轉(zhuǎn)為L(zhǎng)ocalDateTime

public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
 Instant instant = Instant.ofEpochMilli(timestamp);
 ZoneId zone = ZoneId.systemDefault();
 return LocalDateTime.ofInstant(instant, zone);
}

將LocalDateTime轉(zhuǎn)為long類型的timestamp

public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
 ZoneId zone = ZoneId.systemDefault();
 Instant instant = localDateTime.atZone(zone).toInstant();
 return instant.toEpochMilli();
}

總結(jié)

到此這篇關(guān)于Java8中的LocalDateTime和Date一些時(shí)間操作方法的文章就介紹到這了,更多相關(guān)java8 localdateTime和date內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Spring-Boot中如何使用@Value注解注入集合類

    在Spring-Boot中如何使用@Value注解注入集合類

    這篇文章主要介紹了在Spring-Boot中如何使用@Value注解注入集合類的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot CountDownLatch多任務(wù)并行處理的實(shí)現(xiàn)方法

    SpringBoot CountDownLatch多任務(wù)并行處理的實(shí)現(xiàn)方法

    本篇文章主要介紹了SpringBoot CountDownLatch多任務(wù)并行處理的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Java爬取豆瓣電影數(shù)據(jù)的方法詳解

    Java爬取豆瓣電影數(shù)據(jù)的方法詳解

    這篇文章主要介紹了Java爬取豆瓣電影數(shù)據(jù)的方法,結(jié)合實(shí)例形式詳細(xì)分析了Java爬取豆瓣電影數(shù)據(jù)相關(guān)原理、操作步驟、實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • JavaAPI中BigInteger、BigDecimal的使用方法及應(yīng)用

    JavaAPI中BigInteger、BigDecimal的使用方法及應(yīng)用

    這篇文章主要給大家介紹了關(guān)于JavaAPI中BigInteger、BigDecimal的使用方法及應(yīng)用,BigInteger是Java中用于表示任意大小整數(shù)的類,它提供了加、減、乘、除等多種運(yùn)算方法,適用于大整數(shù)處理和高精度計(jì)算場(chǎng)景,需要的朋友可以參考下
    2024-11-11
  • java解析php函數(shù)json_encode unicode 編碼問(wèn)題

    java解析php函數(shù)json_encode unicode 編碼問(wèn)題

    這篇文章主要介紹了java解析php函數(shù)json_encode unicode 編碼問(wèn)題,需要的朋友可以參考下
    2016-04-04
  • Maven打包jar包沒(méi)有主屬性問(wèn)題解決方案

    Maven打包jar包沒(méi)有主屬性問(wèn)題解決方案

    這篇文章主要介紹了Maven打包jar包沒(méi)有主屬性問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • logback TimeBasedRollingPolicy按天生成日志源碼解析

    logback TimeBasedRollingPolicy按天生成日志源碼解析

    這篇文章主要為大家介紹了logback TimeBasedRollingPolicy按天生成日志源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Spring核心IoC和AOP的理解

    Spring核心IoC和AOP的理解

    本文主要介紹了Spring核心IoC和AOP的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • SpringAOP中的通知Advice詳解

    SpringAOP中的通知Advice詳解

    這篇文章主要介紹了SpringAOP中的通知Advice詳解,Spring 的 AOP 功能中一個(gè)關(guān)鍵概念是通知Advice與切點(diǎn)Pointcut表達(dá)式相關(guān)聯(lián)在特定節(jié)點(diǎn)織入一些邏輯,Spring 提供了五種類型的通知,需要的朋友可以參考下
    2023-08-08
  • 挑戰(zhàn)4道Java試題

    挑戰(zhàn)4道Java試題

    這篇文章主要為大家分享了4道Java基礎(chǔ)題,幫助大家鞏固基礎(chǔ)知識(shí),夯實(shí)java基礎(chǔ)技能,感興趣的朋友快點(diǎn)挑戰(zhàn)
    2015-12-12

最新評(píng)論