java的時間與日曆處理

Java 語言的Date(日期),Calendar(日曆),DateFormat(日期格式)組成了Java標準的一個基本但是非常重要的部分。

系統日期  long 毫秒數

    System.out.println(System.currentTimeMillis());
    //    1466824721570
我們如何才能以一種用戶明白的格式來顯示這個日期呢?
 在這裏類java.text.SimpleDateFormat 和它的抽象基類 
                java.text.DateFormat 就派得上用場了。 
日期數據的定製格式 
Date date = new Date();
System.out.println(date);
System.out.println(date.getTime());
System.out.println(System.currentTimeMillis());
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(df.format(date));
console:
Sat Jun 25 14:15:24 GMT+08:00 2016
1466835324388
2016/06/25 14:15:24
只要通過向SimpleDateFormat 的構造函數傳遞格式字符串"yyyy/MM/dd HH:mm:ss",我們就能夠指明自己想要的格式。格式字符串中的ASCII 字符告訴格式化函數下面顯示日期數據的哪一個部分。MMMM是月,dd是日,yyyy是年EEEE是星期,字符的個數決定了日期是如何格式化的。



將文本數據解析成日期對象 

        DateFormat dateFormat= new SimpleDateFormat("yyyy:MM:dd");
        String str = "2014:03:24";
        try{
            Date date = dateFormat.parse(str);
            System.out.println(date);
                         //此處顯示 Sun Mar 24 00:00:00 GMT+08:00 2013
            System.out.println(date.getTime());

            System.out.println(dateFormat.format(date));      //重點    format   }catch(Exception e){
            e.printStackTrace();
        }
console:

Mon Mar 24 00:00:00 GMT+08:00 2014
1395590400000
2014:03:24


使用標準的日期格式化過程 

下面是我們獲取了六個內建的日期格式化過程。它們包括一個空,默認,短的,中等的,長的,完整的日期格式。 

String dateStr=null;

Date date= new Date();
System.out.println(date);

//日期
dateStr= DateFormat.getDateInstance().format(date);//默認
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.DEFAULT).format(date);//默認
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.SHORT).format(date);//短型
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.LONG).format(date);// 長型
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.MEDIUM).format(date);//中間型,等效默認型
System.out.println(dateStr);

dateStr=DateFormat.getDateInstance(DateFormat.FULL).format(date);//全型
System.out.println(dateStr);

System.out.println("--------------------------------------------");

//時間
dateStr = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(date);
System.out.println(dateStr);

dateStr = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(date);
System.out.println(dateStr);

console:

Sat Jun 25 14:19:47 GMT+08:00 2016
2016-6-25
2016-6-25
16-6-25
2016年6月25日
2016-6-25
2016年6月25日 星期六
--------------------------------------------
2016-6-25 14:19:47
16-6-25 下午2:19
2016年6月25日 下午02時19分47秒
2016-6-25 14:19:47
2016年6月25日 星期六 下午02時19分47秒 GMT+08:00


日曆處理:

import java.text.DateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

public class CalendarDemo {
public static void main(String[] args) {
Date date = new Date();
DateFormat dateFormat= DateFormat.getDateInstance(DateFormat.FULL);
GregorianCalendar calendar = new GregorianCalendar();

calendar.setTime(date);// 使用給定的 Date 設置此 Calendar 的時間
System.out.println("System Date:"+calendar.getTime());//獲取日曆時間

//設置日曆星期5的時間
calendar.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);//將給定的日曆字段設置爲給定值。
System.out.println("Day of Week to Saturday: \n"+dateFormat.format(calendar.getTime()));

int saturdayNum= 0;
while(saturdayNum <=10){
//增加日曆類的時間
calendar.add(GregorianCalendar.DAY_OF_MONTH,7);//根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量。
System.out.println(calendar.getTime());
System.out.println(dateFormat.format(calendar.getTime()));
//獲取日期號
System.out.println("----"+calendar.get(GregorianCalendar.DAY_OF_MONTH));//返回給定日曆字段的值。
saturdayNum++;
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章