標籤:
一、Data及其常用API
1、簡介
Java中的時間使用標準類庫的java.util.Date,其表示特定的瞬間,精確到毫秒。是用距離一個固定時間點的毫秒數(可正可負,long類型)表達一個特定的時間點。
固定的時間點叫紀元(epoch),是UTC時間1970年 1月 1日 00:00:00 ,UTC(Universal Time Coordinated世界調整時間)與GMT(Greenwich Mean Time格林威治時間)一樣,是一種具有實際目的的科學標準時間。
因為Date的設計具有"千年蟲"以及"時區"的問題,所以Date中的大部分方法已經不建議使用了,它們都被java.util.Calendar類所取代,該類我們稍後會講解。
2、建構函式
①:new Date() :返回系統目前時間的Date對象
②:new Date(long date):給定指定毫秒數,返回Date對象
③:new Date(int year, int month,int date) :根據年月日返回Date對象
注意:year:107表示2007年 年份=1900+year 。例如要表示2015年,則year=2015-1900=115
month:0表示1月 月份=month+1 。例如要表示6月,則month=6-1=5 。如果月份大於11會產生向年份進位。
date:日如果大於該月的最大值時,同樣會向月進位
④:new Date(int year,int month,int date,int hrs,int min)
⑤:new Date(int year,int month,int date,int hrs,int min,int sec)
注意:時分秒同樣也會產生進位
3、常用方法
①:setTime(long time) 設定一個時間,long表示的這個時間點距離1970年1月1日 00:00:00之間的毫秒差。
②:getTime():擷取該時間距離1970年1月1日 00:00:00之間的毫秒差
二、SimpleDateFormat
1、簡介
SimpleDateFormat 是一個以與語言環境有關的方式來格式化和解析日期的具體類。它允許進行格式化(日期 -> 文本)、解析(文本 -> 日期)和正常化。
2、日期模式比對字元串
| 字元 |
含義 |
樣本 |
| y |
年 |
yyyy年---2015年 |
| M |
月 |
MM月--03月 |
| d |
日 |
dd日--12日 |
| E |
星期 |
E--星期日 |
| a |
上下午 |
a--上午(AM) |
| H |
24小時制 |
HH時--16時 |
| h |
12小時制 |
hh時--04時 |
| m |
分 |
mm--23分 |
| s |
秒 |
ss--59秒 |
| S |
毫秒 |
SSS毫秒-567毫秒 |
例如yyyy-MM-dd HH:mm:ss.SSS可以匹配2015-06-02 14:32:13.546
3、將Date轉換成String
Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");System.out.println(sdf.format(date));
4、將String轉換成Date
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");Date date =sdf.parse("2015-06-02 14:35:36.000");System.out.println(date);
三、Calendar類
1、簡介
java.util.Calendar 類用於封裝行事曆資訊,其主要作用在於其方法可以對時間分量進行運算。
Calendar是抽象類別,其具體子類針對不同國家的日曆系統,其中應用最廣泛的是GregorianCalendar(格裡高裡曆,即通用的陽曆),對應世界上絕大多數省/地區使用的標準日曆系統。
2、 getInstance()方法
Calendar是抽象類別,其提供了一個Factory 方法:Calendar getInstance()。該方法可以根據當前系統所在地區擷取一個適當的Calendar的子類實現。
在實際開發中,也推薦使用該方法來執行個體化Calendar的對象。
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");Calendar calendar=Calendar.getInstance();System.out.println(sdf.format(calendar.getTime()));
3、設定日期及時間分量
Calendar提供了一種通用的設定時間的方式:
void set(int field,int value)
該方法可以通過對不同的時間分量分別設定不同的值。Calendar對不同的時間分量提供了相應的常量,我們在使用set方法設定時,第一個參數就應當使用對應的常量作為時間分量。
注意:分量month同樣從0開始,分量也有進位的可能
4、setTime與getTime
設定和擷取的對象都是Data類型,而Date對象對應的這兩個方法,是long類型的
5、void add(int field,int amount)
該方法可以為某個時間分量的值加上給定的值,若想減去給定的值,那麼傳入的值需要時負數即可。並且計算後會自動進行相應的進位。
6、int getActualMaximum(int field)
擷取該分量的最大值
21、java中和日期相關的類