Java--Calendar 類進(jìn)行時間和日期的處理

Date 類最主要的作用就是獲得當(dāng)前時間,同時這個類里面也具有設(shè)置時間以及一些其他的功能,但是由于本身設(shè)計的問題,這些方法卻遭到眾多批評,不建議使用,更推薦使用 Calendar 類進(jìn)行時間和日期的處理。

java.util.Calendar 類是一個抽象類,可以通過調(diào)用getInstance()****靜態(tài)方法獲取一個 Calendar 對象,此對象已由當(dāng)前日期時間初始化,即默認(rèn)代表當(dāng)前時間,如 :

Calendar c = Calendar.getInstance();

如何使用 Calendar 獲取年、月、日、時間等信息:

Calendar 類提供了getTime()方法,用來獲取 Date 對象,完成 Calendar 和 Date 的轉(zhuǎn)換,還可通過getTimeInMillis()方法,獲取此 Calendar 的時間值,以毫秒為單位。

Date date = c.getTime();
Long time = c.getTimeInMillis();
System.out.println("當(dāng)前時間:" + date);
System.out.println("當(dāng)前毫秒數(shù):" + time);

打印日歷練習(xí):

package com.meng.util;

import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class JdkLibTest {

    public static void main(String[] args) throws ParseException {
        String date_str = "2017-08-14";
        getMyCalendar(date_str);
    }

    private static void getMyCalendar(String date_str) throws ParseException {
        
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(date_str);
        
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        // 獲取給定的時間是幾號
        int day = calendar.get(Calendar.DATE);
        // 將日期改為該月1號
        calendar.set(Calendar.DATE, 1);
        // 獲取該月1號是本周第幾天
        int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        // 獲取該月的最后一天是幾號
        int lastDay = calendar.getActualMaximum(Calendar.DATE);
        // 每個月多需要6行7列即可顯示完整
        int[] days = new int[6 * 7];
        // 為數(shù)組填充值
        for (int i = 1; i <= lastDay; i++) {
            days[i + (firstDayOfWeek - 1) - 1] = i;
        }
        // 打印日歷
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        for (int i = 0; i < days.length; i++) {
            if (days[i] != 0) {
                if (days[i] == day) {
                    System.out.print("*");
                }
                System.out.print(days[i]);
            }
            System.out.print("\t");
            if ((i + 1) % 7 == 0) {
                System.out.println("");
            }
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容