java时间规划书_【计算机本科补全计划】Java学习笔记(九) Java日期时间
正文之前
終于好像仿佛看完了菜鳥教程的Java課程,感覺自己收獲頗豐!很好,Java看完之后正愁如何開始進階呢!結果發現菜鳥還準備了Java實例這種好東西!簡直就是教程界的良心啊 !!!沒事,先寫寫筆記,明天再來一個個實現!!今天先說說時間類,(本來準備將正則的,但是待會要去健身房了,所有先不說了!)
正文
1、 Java 日期時間
java.util 包提供了 Date 類來封裝當前的日期和時間。 Date 類提供兩個構造函數來實例化 Date 對象。第一個構造函數使用當前日期和時間來初始化對象。
Date( )
第二個構造函數接收一個參數,該參數是從1970年1月1日起的毫秒數。
Date(long millisec)
對象創建完畢之后,可以調用如下的方法:
序號
方法和描述
1
boolean after(Date date)若當調用此方法的Date對象在指定日期之后返回true,否則返回false。
2
boolean before(Date date) 若當調用此方法的Date對象在指定日期之前返回true,否則返回false。
3
Object clone( ) 返回此對象的副本。
4
int compareTo(Date date) 比較當調用此方法的Date對象和指定日期。兩者相等時候返回0。調用對象在指定日期之前則返回負數。調用對象在指定日期之后則返回正數。
5
int compareTo(Object obj) 若obj是Date類型則操作等同于compareTo(Date) 。否則它拋出ClassCastException。
6
boolean equals(Object date) 當調用此方法的Date對象和指定日期相等時候返回true,否則返回false。
7
long getTime( ) 返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。
8
int hashCode( ) 返回此對象的哈希碼值。
9
void setTime(long time) 用自1970年1月1日00:00:00 GMT以后time毫秒數設置時間和日期。
10
String toString( ) 把此 Date 對象轉換為以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
代碼示例:
import java.util.Date;
public class DateDemo {
public static void main(String args[]) {
// 初始化 Date 對象
Date date = new Date();
// 使用 toString() 函數顯示日期時間
System.out.println(date.toString());
}
}
Tue Dec 05 19:05:36 CST 2017
[Finished in 1.5s]
2、日期比較
Java使用以下三種方法來比較兩個日期:
使用 getTime() 方法獲取兩個日期(自1970年1月1日經歷的毫秒數值),然后比較這兩個值。
使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
使用 compareTo() 方法,它是由 Comparable 接口定義的,Date 類實現了這個接口。
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
// 初始化 Date 對象
Date date = new Date();
// 使用 toString() 函數顯示日期時間
System.out.println(date.toString());
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current Date: " + ft.format(dNow));
if(date.getTime()
{
System.out.println("Maybe I know the function getTime() before() and compareTo() now!!");
}
}
}
3、 使用 SimpleDateFormat 格式化日期
SimpleDateFormat 是一個以語言環境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何用戶自定義日期時間格式來運行。例如:
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current Date: " + ft.format(dNow));
}
}
4、 日期和時間的格式化編碼
時間模式字符串用來指定時間格式。在此模式中,所有的 ASCII 字母被保留為模式字母,定義如下:
5、 使用printf格式化日期
printf 方法可以很輕松地格式化時間和日期。使用兩個字母格式,它以 %t 開頭并且以下面表格中的一個字母結尾。
詳情參見下面的例子:點擊🌰,有驚喜哦!
6、 解析字符串為時間
SimpleDateFormat 類有一些附加的方法,特別是parse(),它試圖按照給定的SimpleDateFormat 對象的格式化存儲來解析字符串。例如:
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd");
String input = args.length == 0 ? "1818-11-11" : args[0];
System.out.print(input + " Parses as ");
Date t;
try {
t = ft.parse(input);
System.out.println(t);
} catch (ParseException e) {
System.out.println("Unparseable using " + ft);
}
}
}
7、 測量時間
下面的一個例子表明如何測量時間間隔(以毫秒為單位):
實例
import java.util.*;
public class DiffDemo {
public static void main(String args[]) {
try {
long start = System.currentTimeMillis( );
System.out.println(new Date( ) + "\n");
Thread.sleep(5*60*10);
System.out.println(new Date( ) + "\n");
long end = System.currentTimeMillis( );
long diff = end - start;
System.out.println("Difference is : " + diff);
} catch (Exception e) {
System.out.println("Got an exception!");
}
}
}
剛好以前有一個類似的。就放著吧,差不多!
8、 Calendar類
我們現在已經能夠格式化并創建一個日期對象了,但是我們如何才能設置和獲取日期數據的特定部分呢,比如說小時,日,或者分鐘? 我們又如何在日期的這些部分加上或者減去值呢? 答案是使用Calendar 類。Calendar類的功能要比Date類強大很多,而且在實現方式上也比Date類要復雜一些。
Calendar類是一個抽象類,在實際使用時實現特定的子類的對象,創建對象的過程對程序員來說是透明的,只需要使用getInstance方法創建即可。
創建一個代表系統當前日期的Calendar對象
Calendar c = Calendar.getInstance();//默認是當前日期
創建一個指定日期的Calendar對象使用Calendar類代表特定的時間,需要首先創建一個Calendar的對象,然后再設定該對象中的年月日參數來完成。
//創建一個代表2009年6月12日的Calendar對象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
常量
描述
Calendar.YEAR
年份
Calendar.MONTH
月份
Calendar.DATE
日期
Calendar.DAY_OF_MONTH
日期,和上面的字段意義完全相同
Calendar.HOUR
12小時制的小時
Calendar.HOUR_OF_DAY
24小時制的小時
Calendar.MINUTE
分鐘
Calendar.SECOND
秒
Calendar.DAY_OF_WEEK
星期幾
其他具體的自己去教程看吧~~ 教程。含有API文檔文檔📚
正文之后
最近很喪~~ 上周日考完CCF給我的傷害還在蔓延,給老師說想去實驗室干活但是沒有回音,今晚再說一次~ 還沒有那就繼續放養吧,反正也不會玩脫~~
總結
以上是生活随笔為你收集整理的java时间规划书_【计算机本科补全计划】Java学习笔记(九) Java日期时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017年网络统考计算机成绩,2017年
- 下一篇: I/0口输入输出实验 学习IO口的位操