java中Date日期類型的大小比較方式
java Date日期類型的大小比較
通過(guò)Date提供的compareTo()進(jìn)行比較
java.util.Date類實(shí)現(xiàn)了Comparable接口,可以直接調(diào)用Date的compareTo()方法來(lái)比較大小
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
通過(guò)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類型。
通過(guò)調(diào)用Date的getTime()方法獲取到毫秒數(shù)來(lái)進(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對(duì)象并打印時(shí),輸出是這樣的
Date date =new Date(); //Sat Apr 07 23:12:52 CST 2018 System.out.println(date);
Sat是星期六,Apr是月份,CST是時(shí)區(qū)
當(dāng)我們對(duì)輸出格式有要求時(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è)置的語(yǔ)言有關(guān)系的,因?yàn)槲覀兊牟僮飨到y(tǒng)平常就是中文
這里關(guān)鍵的就是
"E yyyy.MM.dd 'at' hh:mm:ss a zzz"
這就是一個(gè)表達(dá)式
順便貼出其他常用的表達(dá)符號(hào)及其含義
/** ? 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ù)庫(kù)中也有對(duì)于時(shí)間的方法
如(mysql)數(shù)據(jù)庫(kù)中有個(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ù)庫(kù)表達(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)%pAM 或 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)簡(jiǎn)易時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了JavaFX實(shí)現(xiàn)簡(jiǎn)易時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
Java中的日期和時(shí)間類以及Calendar類用法詳解
這篇文章主要介紹了Java中的日期和時(shí)間類以及Calendar類用法詳解,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09
MyBatis SpringMVC整合實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了MyBatis SpringMVC整合實(shí)現(xiàn)步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
java-流的使用完結(jié)與異常處理機(jī)制(詳解)
下面小編就為大家?guī)?lái)一篇java-流的使用完結(jié)與異常處理機(jī)制(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Mybatis批量插入Oracle數(shù)據(jù)的方法實(shí)例
在開發(fā)中或多或少都會(huì)遇到數(shù)據(jù)批量插入的功能,最近我在做項(xiàng)目的過(guò)程中就遇到了這樣一個(gè)問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Mybatis批量插入Oracle數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-01-01
@Async導(dǎo)致controller?404及失效原因解決分析
這篇文章主要為大家介紹了@Async導(dǎo)致controller?404失效問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
SpringBoot使用Redis對(duì)用戶IP進(jìn)行接口限流的示例詳解
使用接口限流的主要目的在于提高系統(tǒng)的穩(wěn)定性,防止接口被惡意打擊,這篇文章主要介紹了SpringBoot使用Redis對(duì)用戶IP進(jìn)行接口限流的示例代碼,需要的朋友可以參考下2023-07-07

