Java中Date、DateFormat、Calendar類
文章目錄
Date類
需要導包
1、 jdk1之前使用,之後使用Calendar類
2、 構造方法
a) Date();根據當前的預設毫秒值建立日期
b) Date(long date)根據給定毫秒值建立日期物件,以1970年1月1日 0點0分0秒開始,由於時區問題,北京在東八區所以北京時間是在1970年1月1日 8點0分0秒開始
3、 成員方法
a) public long getTime();獲取時間以毫秒為單位;
b) public void setTime();設定時間
DateFormat類是日期/時間格式化子類的抽象類,
使用具體抽象類SimpleDateFormat類實現
1、 SimpleDateFormat類的構造方法
a) SimpleDateFormat()預設方法
b) SimpleDateFormat(String pattern)指定方法
i. 年Y、月M、日d、時H、分m、秒s
ii. pattern可以設定為YYYY年MM月dd日HH:mm:ss
iii. 顯示結果為2018年10月26日17:55:50
當給定時間轉換為字串和給定一個字串得到時間的具體辦法都在例項中
2、 String-Date
a) public Date parse(String source)
3、 Date-String
a) public final String format(Date date)
字串和指定時間格式轉換例項
package test09_date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo {
public static void main(String[] args) throws ParseException {
//Date-String
Date d1=new Date();
SimpleDateFormat sdf1=new SimpleDateFormat("YYYY年MM月dd日HH:mm:ss" );
String s1=sdf1.format(d1);
System.out.println(s1);
//String-Date
//注意s2和sdf2格式需要完全一樣
String s2="2018-10-26 18:08:16";
SimpleDateFormat sdf2=new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
Date d2=sdf2.parse(s2);
System.out.println(d2);
}
}
輸出結果
Calendar類
抽象類
1、 public int get(int field)//返回給定日曆欄位field(可以是年YEAR月MONTH日DATE)的值,每個日曆欄位都是靜態的成員變數,並且是int類的,其中月是從0開始所以月份最終實際月份需要加1。
a) Calendar c=Calendar.getInstance();//獲取子類物件(因為Calendar為抽象類)
b) int year=c.get(Calendar.YEAR);
c) int month=c.get(Calendar.MONTH);
d) int date=c.get(Calendar.DATE);
2、 public void add(int field,int amount);
a) 根據給定的日曆欄位field對當前日曆進行加amount(可為負數)操作
3、 public final void set(int year,int month,int year)
a) 設定當前日曆的時間
4、 public long getTimeInMillis()獲取當前calendar的時間值,以毫秒為單位
5、 獲取任意年份的二月有多少天例項
package test09_date;
import java.util.Calendar;
import java.util.Scanner;
//獲取任意年份二月的天數
// 1、輸入年份
// 2、設定當前物件的年月日,設定月為2(其實是3月)日是1,即實際的3月1號
// 3、之後看設定物件的前一天的日期,該日期中的天數即為2月的天數。
public class CalendarDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入當前年份");
int year=sc.nextInt();
//輸入完畢後關閉掃描器以節省資源不加會有警告
sc.close();
Calendar c=Calendar.getInstance();
c.set(year,2,1);
c.add(Calendar.DATE, -1);
System.out.println(c.get(Calendar.DATE));
}
}