最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Date時間類型的操作實現(xiàn)

 更新時間:2022年04月06日 16:22:25   作者:P丶少  
本文主要介紹Java Date 日期類型,以及Calendar的怎么獲取時間,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文主要介紹Java Date 日期類型,以及Calendar的怎么獲取時間,然后寫成時間工具類里面有下面這些方法:

  • - 時間轉字符串(有默認時間格式,帶時間格式)
  • - 字符串轉時間(有默認時間格式,帶時間格式)
  • - 計算兩個日期之間相差的天數(shù)
  • - 計算當前時間多少天以后的日期
  • - 判斷是否是日期格式

代碼

很多說明都注釋在代碼上:

package datedemo;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Pattern;
/**
?* 日期工具
?*/
public class DateUtil {
? ? private final static String A="yyyy-MM-dd";//日期格式
? ? private final static String B="yyyy-MM-dd HH:mm:ss";//日期格式
? ? private final static String C="yyyy/MM/dd HH:mm:ss";//日期格式
? ? private final static String exp="((^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._])(10|12|0?[13578])([-\\/\\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._])(11|0?[469])([-\\/\\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._])(0?2)([-\\/\\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([3579][26]00)([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([1][89][0][48])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([2-9][0-9][0][48])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([1][89][2468][048])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([2-9][0-9][2468][048])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([1][89][13579][26])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([2-9][0-9][13579][26])([-\\/\\._])(0?2)([-\\/\\._])(29)$))";
? ? /**
? ? ?* 時間類型轉字符串 固定返回 日期為 yyyy-MM-dd
? ? ?* @param date
? ? ?* @return String
? ? ?*/
? ? public static String getDateToString(Date date) throws Exception{
? ? ? ? String s;
? ? ? ? SimpleDateFormat sft=new SimpleDateFormat(A);//格式時間對象
? ? ? ? s=sft.format(date);
? ? ? ? return s;
? ? }

? ? /**
? ? ?* 時間類型轉字符串 不固定日期格式
? ? ?* @param date
? ? ?* @param format
? ? ?* @return String
? ? ?*/
? ? public static String getDteToString (Date date,String format) throws Exception{
? ? ? ? String s;
? ? ? ? SimpleDateFormat sft=new SimpleDateFormat(format);//格式時間對象
? ? ? ? s=sft.format(date);
? ? ? ? return s;
? ? }

? ? /**
? ? ?* 字符串時間轉時間類型 固定日期格式 yyyy-MM-dd
? ? ?* @param text 字符串時間
? ? ?* @return Date
? ? ?* @throws Exception
? ? ?*/
? ? public static Date getStringToDate(String text) throws Exception{
? ? ? ? SimpleDateFormat sdf = new SimpleDateFormat(A);//格式時間對象
? ? ? ? Date date = sdf.parse(text);
? ? ? ? return date;
? ? }

? ? /**
? ? ?* 字符串時間轉時間類型 不固定時間格式
? ? ?* @param text 時間字符串
? ? ?* @param format 日期格式
? ? ?* @return Date
? ? ?* @throws Exception
? ? ?*/
? ? public static Date gettringToDate(String text,String format) throws Exception{
? ? ? ? SimpleDateFormat sdf=new SimpleDateFormat(format);//格式時間對象
? ? ? ? Date date=sdf.parse(text);
? ? ? ? return date;
? ? }

? ? /**
? ? ?*計算兩個日期之間相差的天數(shù)
? ? ?* @param a 第一個日期時間
? ? ?* @param b 第二個日期時間
? ? ?* @return
? ? ?* @throws Exception
? ? ?*/
? ? public static long getDaysBetweenTwoDates(Date a, Date b) throws Exception {
? ? ? ? //判斷這兩個時間的大小
? ? ? ? if(a.equals(b)) return 0;
? ? ? ? if(!a.before(b)){//保證返回的值為正數(shù)
? ? ? ? ? ? Date temp;
? ? ? ? ? ? temp=a;
? ? ? ? ? ? a=b;
? ? ? ? ? ? b=temp;
? ? ? ? }
? ? ? ? Calendar c = Calendar.getInstance();//獲取calendar對像
? ? ? ? c.setTime(a);//設置時間 date ?轉 calendar 類型
? ? ? ? long t1 = c.getTimeInMillis();//獲取時間戳
? ? ? ? c.setTime(b);
? ? ? ? long t2 = c.getTimeInMillis();
? ? ? ? //計算天數(shù)
? ? ? ? long days = (t2 - t1) / (24 * 60 * 60 * 1000);
? ? ? ? return days;
? ? }

? ? /**
? ? ?* 計算當前時間多少天以后的日期
? ? ?* @param currentDate 當前時間
? ? ?* @param distance 距離多少天
? ? ?* @return
? ? ?*/
? ? public static Date getNextDasByNumber(Date currentDate,int distance)throws Exception{
? ? ? ? Calendar calendar=Calendar.getInstance();//獲取日歷對象
? ? ? ? calendar.setTime(currentDate);//設置當前時間 date ?轉 calendar 類型
? ? ? ? calendar.add(Calendar.DATE,distance);//計算離當前時間以后的日期
? ? ? ? Date date=calendar.getTime();//calendar 轉 date ?類型
? ? ? ? return date;
? ? }

? ? /**
? ? ?* 判斷是否是日期格式
? ? ?* @param date ?字符串
? ? ?* @return
? ? ?*/
? ? public static boolean isDate(String date){
? ? ? ?// 創(chuàng)建 Pattern 對象 java正則表達式對象
? ? ? ? Pattern r = Pattern.compile(exp);
? ? ? ? boolean flag = ?r.matcher(date).matches();//判斷它格式是否正確
? ? ? ? return flag;
? ? }

? ? public static void main(String []arg){
? ? ? ? Calendar calendar=Calendar.getInstance();
? ? ? ? try {
? ? ? ? ? ? //驗證計算兩個日期之間相差的天數(shù)
? ? ? ? ? ? long i= getDaysBetweenTwoDates(getStringToDate("2017-02-11"),getStringToDate("2017-03-11"));
? ? ? ? ? ? System.out.println("計算(2017-02-11,2017-03-11)兩個日期之間相差的天數(shù):"+i);

? ? ? ? ? ? Date d= getNextDasByNumber(getStringToDate("2017-02-11"),28);
? ? ? ? ? ? System.out.println("計算(2017-02-11)時間128天以后的日期:"+getDateToString(d));
? ? ? ? ? ? boolean f= isDate("2017-02-11");
? ? ? ? ? ? System.out.println("判斷2017-02-11日期格式是否正確:"+f);
? ? ? ? ? ? boolean f1= isDate("20170211");//正則表達式不支持這種
? ? ? ? ? ? System.out.println("判斷20170211日期格式是否正確:"+f1);
? ? ? ? ? ? boolean f2= isDate("2017/02/11");
? ? ? ? ? ? System.out.println("判斷2017/02/11日期格式是否正確:"+f2);
? ? ? ? ? ? System.out.println();
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
}

結果

總結

Calendar比Java原有的Date更加強大些,它們之間也可以相互轉換 ,不過用Calendar,小心獲取月份時,它是陰歷–得加一才是我們正常的月份;
就說這么多了,都是干貨哈?。。?,大家有不明白的或者有新的需求都可提出來,一起討論討論;

到此這篇關于Java Date時間類型的操作實現(xiàn)的文章就介紹到這了,更多相關Java Date類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java重寫與重載之間的區(qū)別

    Java重寫與重載之間的區(qū)別

    本文主要介紹了Java重寫與重載之間的區(qū)別。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Java使用wait() notify()方法操作共享資源詳解

    Java使用wait() notify()方法操作共享資源詳解

    這篇文章主要為大家詳細介紹了Java使用wait() notify()方法操作共享資源,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • spring framework源碼調試技巧

    spring framework源碼調試技巧

    這篇文章給大家介紹了spring-framework源碼調試方法,可以直接將最新代碼clone到本地,如果想在代碼做一些注釋,也可以Fork到自己的倉庫。本文采用Fork的方式,并添加了測試module,感興趣的朋友一起看看吧
    2021-10-10
  • SpringBoot項目部署在weblogic中間件的注意事項說明

    SpringBoot項目部署在weblogic中間件的注意事項說明

    這篇文章主要介紹了SpringBoot項目部署在weblogic中間件的注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 使用Spring自身提供的地址匹配工具匹配URL操作

    使用Spring自身提供的地址匹配工具匹配URL操作

    這篇文章主要介紹了使用Spring自身提供的地址匹配工具匹配URL操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • springboot應用服務啟動事件的監(jiān)聽實現(xiàn)

    springboot應用服務啟動事件的監(jiān)聽實現(xiàn)

    本文主要介紹了springboot應用服務啟動事件的監(jiān)聽實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Java @SentinelResource全面介紹

    Java @SentinelResource全面介紹

    在實際應用過程中,我們可能需要限流的層面不僅限于接口??赡軐τ谀硞€方法的調用限流,對于某個外部資源的調用限流等都希望做到控制。對此,我們需要學習使用@SentinelResource注解,靈活的定義控制資源以及如何配置控制策略
    2022-08-08
  • SpringCloud 中使用 Ribbon的方法詳解

    SpringCloud 中使用 Ribbon的方法詳解

    本文重點給大家介紹SpringCloud 中使用 Ribbon的方法,本文通過實例文字相結合的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2018-10-10
  • 深入了解Java中Volatile關鍵字

    深入了解Java中Volatile關鍵字

    這篇文章主要介紹了Java中Volatile關鍵字的相關知識,文章講解非常詳細,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • 如何將默認的maven倉庫改為阿里的maven倉庫

    如何將默認的maven倉庫改為阿里的maven倉庫

    這篇文章主要介紹了如何將默認的maven倉庫改為阿里的maven倉庫,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12

最新評論

洛浦县| 页游| 普陀区| 新源县| 铁岭县| 琼海市| 营山县| 遵义市| 富阳市| 淄博市| 沈阳市| 武功县| 龙门县| 西林县| 北安市| 砚山县| 江北区| 四平市| 南岸区| 苗栗县| 左权县| 新龙县| 滨海县| 龙门县| 甘泉县| 涞源县| 延寿县| 潜江市| 株洲市| 边坝县| 万荣县| 遂昌县| 武宣县| 易门县| 色达县| 建始县| 无棣县| 余干县| 凤阳县| 会理县| 永吉县|