java中Date日期類型的大小比較方式
java Date日期類型的大小比較
通過Date提供的compareTo()進行比較
java.util.Date類實現(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ù)來進行比較
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常用的日期類估計就是Date類
當我們新建一個Date對象并打印時,輸出是這樣的
Date date =new Date(); //Sat Apr 07 23:12:52 CST 2018 System.out.println(date);
Sat是星期六,Apr是月份,CST是時區(qū)
當我們對輸出格式有要求時,會用到SimpleDateFormat這個類
用法大概是這樣
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));至于它為什么會選擇中文,這是跟你的操作系統(tǒng)設置的語言有關系的,因為我們的操作系統(tǒng)平常就是中文
這里關鍵的就是
"E yyyy.MM.dd 'at' hh:mm:ss a zzz"
這就是一個表達式
順便貼出其他常用的表達符號及其含義
/** ? G 年代標志符 ? y 年 ? M 月 ? d 日 ? h 時 在上午或下午 (1~12) ? H 時 在一天中 (0~23) ? m 分 ? s 秒 ? S 毫秒 ? E 星期 ? D 一年中的第幾天 ? F 一月中第幾個星期幾 ? w 一年中第幾個星期 ? W 一月中第幾個星期 ? a 上午 / 下午 標記符? ? k 時 在一天中 (1~24) ? K 時 在上午或下午 (0~11) ? z 時區(qū) ?*/
在一些常用的數(shù)據(jù)庫中也有對于時間的方法
如(mysql)數(shù)據(jù)庫中有個類型是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()方法插入當前的時間
insert into timetest VALUES(null,now());
結(jié)果如下

也可用DATE_FORMAT方法進行特定的查找
比如在上面那個表查id=1的那條記錄
select *from timetest where DATE_FORMAT(t,'%i:%s')='51:54';
上面那個t是指要查找的列名,‘%i:%s’則是一個表達式,在這里表示多少分多少秒
結(jié)果

下面也給出一些常用的數(shù)據(jù)庫表達式
%a縮寫星期名%b縮寫月名%c月,數(shù)值%D帶有英文前綴的月中的天%d月的天,數(shù)值(00-31)%e月的天,數(shù)值(0-31)%f微秒%H小時 (00-23)%h小時 (01-12)%I小時 (01-12)%i分鐘,數(shù)值(00-59)%j年的天 (001-366)%k小時 (0-23)%l小時 (1-12)%M月名%m月,數(shù)值(00-12)%pAM 或 PM%r時間,12-小時(hh:mm:ss AM 或 PM)%S秒(00-59)%s秒(00-59)%T時間, 24-小時 (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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Struts1簡介和入門_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了Struts1簡介和入門的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
Java結(jié)構(gòu)型設計模式中建造者模式示例詳解
建造者模式,是一種對象構(gòu)建模式 它可以將復雜對象的建造過程抽象出來,使這個抽象過程的不同實現(xiàn)方法可以構(gòu)造出不同表現(xiàn)的對象。本文將通過示例講解建造者模式,需要的可以參考一下2022-09-09
使用java.nio.file?庫優(yōu)雅的操作文件詳解
這篇文章主要介紹了使用java.nio.file?庫優(yōu)雅的操作文件詳解,需要的朋友可以參考下2023-05-05
Java AQS(AbstractQueuedSynchronizer)源碼解析
AbstractQueuedSynchronizer被稱為隊列同步器,簡稱為大家熟知的AQS,這個類可以稱作concurrent包的基礎。本文將通過剖析源碼來看看AQS是如何工作的,感興趣的可以了解一下2023-02-02

