JAVA 日期時間類使用方法

相關類

Date: 
Date表示特定的瞬間,精確到毫秒,Date中的相應方法已廢棄,從JDK 1.1開始,應該使用Calendar類實現日期和時間字段之間轉換。 
DateFormat: 
DateFormat是日期/時間格式化子類的抽象類,格式化並解析日期或時間,能夠進行日期 -> 文本 ,文本-> 日期的轉換。子類SimpleDateFormat。 
Calendar: 
Calendar是日曆抽象類,可經過其獲取日期時間。推薦使用。sql

Date類基本使用

public class Test {

    public static void main(String[] args) {

        // 無參構造
        Date date = new Date();
        System.out.println(date);//Thu May 12 22:06:44 CST 2016
        // 帶參構造
        date = new Date(System.currentTimeMillis());
        System.out.println(date);//Thu May 12 22:06:44 CST 2016

        // void setTime(long time) 設置 Date 對象,以表示 1970 年 1 月 1 日 00:00:00之後time毫秒的時間點
        // long getTime() 返回自 1970 年 1 月 1 日 00:00:00以來此 Date 對象表示的毫秒數
        date.setTime(1000);// 1s
        System.out.println(date);//Thu Jan 01 08:00:01 CST 1970
        System.out.println(date.getTime());//1000
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

注:System.out.println(date)可以輸出Thu May 12 22:06:44 CST 2016,是由於Date類重寫類toString()方法;date.setTime(1000)後按說應該輸出Thu Jan 01 00:00:01 CST 1970 爲何會輸出Thu Jan 01 08:00:01 CST 1970,是由於咱們是東八區。(這和系統設置的時間和時區相關)ide

DateFormat類基本使用

日期和時間模式spa

字母  日期或時間元素  表示  示例  
G  Era 標誌符  Text  AD  
y  年  Year  1996; 96  
M  年中的月份  Month  July; Jul; 07  
w  年中的週數  Number  27  
W  月份中的週數  Number  2  
D  年中的天數  Number  189  
d  月份中的天數  Number  10  
F  月份中的星期  Number  2  
E  星期中的天數  Text  Tuesday; Tue  
a  Am/pm 標記  Text  PM  
H  一天中的小時數(0-23Number  0  
k  一天中的小時數(1-24Number  24  
K  am/pm 中的小時數(0-11Number  0  
h  am/pm 中的小時數(1-12Number  12  
m  小時中的分鐘數  Number  30  
s  分鐘中的秒數  Number  55  
S  毫秒數  Number  978  
z  時區  General time zone  Pacific Standard Time; PST; GMT-08:00  
Z  時區  RFC 822 time zone  -0800
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

經常使用構造方法: 
SimpleDateFormat()//用默認的模式和默認語言環境的日期格式符號構造 SimpleDateFormat 
SimpleDateFormat(String pattern)//用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormatcode

public class Test {

    public static void main(String[] args) throws ParseException {
        // 日期 -> 文本
        Date date = new Date();
        // 無參構造
        DateFormat dateFormat = new SimpleDateFormat();
        // format方法 將Date格式化爲日期/時間字符串
        String time = dateFormat.format(date);
        System.out.println(time);// 16-5-12 下午10:38

        dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        // 帶參構造
        String time2 = dateFormat.format(date);
        System.out.println(time2);// 2016-05-12 10:41:38

        // 文本-> 日期
        String tiem3 = "2016年5月12日 22時47分15秒";
        Date date2 = new Date();
        //模式必定要和文本格式相同 包括空格數
        DateFormat dateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 hh時mm分ss秒");
        //parse()從給定字符串的開始解析文本,以生成一個日期
        date2 = dateFormat2.parse(tiem3);
        System.out.println(date2);//Thu May 12 22:47:15 CST 2016
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

Calendar基本使用

經常使用字段:orm

YEARMONTH 月份 (0-11)
DAY_OF_MONTH 一個月中的某天
HOUR_OF_DAY 一天中的小時
MINUTE 分鐘
SECOND 秒
AM 上午
PM 下午
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

經常使用方法:對象

int get(int field)//返回給定日曆字段的值 
abstract  void add(int field, int amount)//根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量
void set(int field, int value)//將給定的日曆字段設置爲給定值 void set(int year, int month, int date)//設置日曆字段 YEARMONTH 和 DAY_OF_MONTH 的值 void set(int year, int month, int date, int hourOfDay, int minute)//設置日曆字段 YEARMONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值 id set(int year, int month, int date, int hourOfDay, int minute, int second)//設置字段 YEARMONTH、DAY_OF_MONTH、HOURMINUTESECOND 的值 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
public class Test {

    public static void main(String[] args) throws ParseException {
        //獲取功能
        //getInstance方法返回Calendar對象,其日曆字段已由當前日期和時間初始化
        Calendar calendar=Calendar.getInstance();
        //獲取年
        int year=calendar.get(Calendar.YEAR);
        //獲取月
        int month=calendar.get(Calendar.MONTH);
        //獲取日 
        int day=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(year + "-" + (month + 1) + "-" + day);//2016-5-12

        //add功能
        calendar.add(Calendar.YEAR, 1);
        System.out.println(calendar.get(Calendar.YEAR));//2017
        calendar.add(Calendar.MONTH, 7);
        System.out.println(calendar.get(Calendar.MONTH));//11
        calendar.add(Calendar.DAY_OF_MONTH, -12);//因爲今日就是12日,-12因此會進入前一個月
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//30

        System.out.println(calendar.get(Calendar.YEAR)+"-"+calendar.get(Calendar.MONTH)+"-"+calendar.get(Calendar.DAY_OF_MONTH));//2017-10-30

        //set功能
        //2008年5月12日(星期一)14時28分04秒
        calendar.set(2008, 4, 12, 14, 28,04);
        System.out.println(calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH)+1)+"-"+calendar.get(Calendar.DAY_OF_MONTH));//2008-5-12
    }

}
相關文章
相關標籤/搜索