java中Date日期類型的大小比較方式
java Date日期類型的大小比較
通過Date提供的compareTo()進(jìn)行比較
java.util.Date類實(shí)現(xiàn)了Comparable接口,可以直接調(diào)用Date的compareTo()方法來比較大小
String beginTime = "2018-07-28 14:42:32"; String endTime = "2018-07-29 12:26:32"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { ? ? Date date1 = format.parse(beginTime); ? ? Date date2 = format.parse(endTime); ? ? int compareTo = date1.compareTo(date2); ? ? System.out.println(compareTo); } catch (ParseException e) { ? ? e.printStackTrace(); }
compareTo()方法的返回值,date1小于date2返回-1,date1大于date2返回1,相等返回0
通過Date自帶的before()或者after()方法比較
String beginTime = "2018-07-28 14:42:32"; String endTime = "2018-07-29 12:26:32"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { ? ? Date date1 = format.parse(beginTime); ? ? Date date2 = format.parse(endTime); ? ? boolean before = date1.before(date2); ? ? System.out.println(before); } catch (ParseException e) { ? ? e.printStackTrace(); }
before()或者after()方法的返回值為boolean類型。
通過調(diào)用Date的getTime()方法獲取到毫秒數(shù)來進(jìn)行比較
String beginTime = "2018-07-28 14:42:32"; String endTime = "2018-07-29 12:26:32"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { ? ? Date date1 = format.parse(beginTime); ? ? Date date2 = format.parse(endTime); ? ? long beginMillisecond = date1.getTime(); ? ? long endMillisecond = date2.getTime(); ? ? System.out.println(beginMillisecond > endMillisecond); } catch (ParseException e) { ? ? e.printStackTrace(); }
java中常用的Date類型
java常用的日期類估計(jì)就是Date類
當(dāng)我們新建一個(gè)Date對象并打印時(shí),輸出是這樣的
Date date =new Date(); //Sat Apr 07 23:12:52 CST 2018 System.out.println(date);
Sat是星期六,Apr是月份,CST是時(shí)區(qū)
當(dāng)我們對輸出格式有要求時(shí),會(huì)用到SimpleDateFormat這個(gè)類
用法大概是這樣
Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); //Current Date: 星期六 2018.04.07 at 11:20:26 下午 CST System.out.println("Current Date: " + ft.format(dNow));
至于它為什么會(huì)選擇中文,這是跟你的操作系統(tǒng)設(shè)置的語言有關(guān)系的,因?yàn)槲覀兊牟僮飨到y(tǒng)平常就是中文
這里關(guān)鍵的就是
"E yyyy.MM.dd 'at' hh:mm:ss a zzz"
這就是一個(gè)表達(dá)式
順便貼出其他常用的表達(dá)符號及其含義
/** ? G 年代標(biāo)志符 ? y 年 ? M 月 ? d 日 ? h 時(shí) 在上午或下午 (1~12) ? H 時(shí) 在一天中 (0~23) ? m 分 ? s 秒 ? S 毫秒 ? E 星期 ? D 一年中的第幾天 ? F 一月中第幾個(gè)星期幾 ? w 一年中第幾個(gè)星期 ? W 一月中第幾個(gè)星期 ? a 上午 / 下午 標(biāo)記符? ? k 時(shí) 在一天中 (1~24) ? K 時(shí) 在上午或下午 (0~11) ? z 時(shí)區(qū) ?*/
在一些常用的數(shù)據(jù)庫中也有對于時(shí)間的方法
如(mysql)數(shù)據(jù)庫中有個(gè)類型是datetime類型
CREATE TABLE `timetest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `t` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
可以使用now()方法插入當(dāng)前的時(shí)間
insert into timetest VALUES(null,now());
結(jié)果如下
也可用DATE_FORMAT方法進(jìn)行特定的查找
比如在上面那個(gè)表查id=1的那條記錄
select *from timetest where DATE_FORMAT(t,'%i:%s')='51:54';
上面那個(gè)t是指要查找的列名,‘%i:%s’則是一個(gè)表達(dá)式,在這里表示多少分多少秒
結(jié)果
下面也給出一些常用的數(shù)據(jù)庫表達(dá)式
%a
縮寫星期名%b
縮寫月名%c
月,數(shù)值%D
帶有英文前綴的月中的天%d
月的天,數(shù)值(00-31)%e
月的天,數(shù)值(0-31)%f
微秒%H
小時(shí) (00-23)%h
小時(shí) (01-12)%I
小時(shí) (01-12)%i
分鐘,數(shù)值(00-59)%j
年的天 (001-366)%k
小時(shí) (0-23)%l
小時(shí) (1-12)%M
月名%m
月,數(shù)值(00-12)%p
AM 或 PM%r
時(shí)間,12-小時(shí)(hh:mm:ss AM 或 PM)%S
秒(00-59)%s
秒(00-59)%T
時(shí)間, 24-小時(shí) (hh:mm:ss)%U
周 (00-53) 星期日是一周的第一天%u
周 (00-53) 星期一是一周的第一天%V
周 (01-53) 星期日是一周的第一天,與 %X 使用%v
周 (01-53) 星期一是一周的第一天,與 %x 使用%W
星期名%w
周的天 (0=星期日, 6=星期六)%X
年,其中的星期日是周的第一天,4 位,與 %V 使用%x
年,其中的星期一是周的第一天,4 位,與 %v 使用%Y
年,4 位%y
年,2 位
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaFX實(shí)現(xiàn)簡易時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了JavaFX實(shí)現(xiàn)簡易時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11Java中的日期和時(shí)間類以及Calendar類用法詳解
這篇文章主要介紹了Java中的日期和時(shí)間類以及Calendar類用法詳解,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09MyBatis SpringMVC整合實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了MyBatis SpringMVC整合實(shí)現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08java-流的使用完結(jié)與異常處理機(jī)制(詳解)
下面小編就為大家?guī)硪黄猨ava-流的使用完結(jié)與異常處理機(jī)制(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09Mybatis批量插入Oracle數(shù)據(jù)的方法實(shí)例
在開發(fā)中或多或少都會(huì)遇到數(shù)據(jù)批量插入的功能,最近我在做項(xiàng)目的過程中就遇到了這樣一個(gè)問題,下面這篇文章主要給大家介紹了關(guān)于Mybatis批量插入Oracle數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-01-01@Async導(dǎo)致controller?404及失效原因解決分析
這篇文章主要為大家介紹了@Async導(dǎo)致controller?404失效問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07SpringBoot使用Redis對用戶IP進(jìn)行接口限流的示例詳解
使用接口限流的主要目的在于提高系統(tǒng)的穩(wěn)定性,防止接口被惡意打擊,這篇文章主要介紹了SpringBoot使用Redis對用戶IP進(jìn)行接口限流的示例代碼,需要的朋友可以參考下2023-07-07