Date 類最主要的作用就是獲得當(dāng)前時(shí)間,同時(shí)這個(gè)類里面也具有設(shè)置時(shí)間以及一些其他的功能冀偶,但是由于本身設(shè)計(jì)的問題吞获,這些方法卻遭到眾多批評,不建議使用谨湘,更推薦使用 Calendar 類進(jìn)行時(shí)間和日期的處理绽快。
java.util.Calendar 類是一個(gè)抽象類,可以通過調(diào)用getInstance()****靜態(tài)方法獲取一個(gè) Calendar 對象紧阔,此對象已由當(dāng)前日期時(shí)間初始化坊罢,即默認(rèn)代表當(dāng)前時(shí)間,如 :
Calendar c = Calendar.getInstance();
如何使用 Calendar 獲取年擅耽、月活孩、日、時(shí)間等信息:
Calendar 類提供了getTime()方法秫筏,用來獲取 Date 對象诱鞠,完成 Calendar 和 Date 的轉(zhuǎn)換,還可通過getTimeInMillis()方法这敬,獲取此 Calendar 的時(shí)間值航夺,以毫秒為單位。
Date date = c.getTime();
Long time = c.getTimeInMillis();
System.out.println("當(dāng)前時(shí)間:" + 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);
// 獲取給定的時(shí)間是幾號
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);
// 每個(gè)月多需要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("");
}
}
}
}