java.util(Date和Calendar)

public class Date
    implements java.io.Serializable, Cloneable, Comparable<Date>
{
    public Date() { //當前時間
        this(System.currentTimeMillis()); 
    }
    public Date(long date) { //分配Date對象並初始化此對象,以表示自從標準基準時間(稱爲「曆元(epoch)」,即1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。
        fastTime = date;
    }
    @Deprecated
    public Date(int year, int month, int date) {
        this(year, month, date, 0, 0, 0);
    }
@Deprecated
    public Date(int year, int month, int date, int hrs, int min) {
        this(year, month, date, hrs, min, 0);
    }
........................
    public String toString() {
        // "EEE MMM dd HH:mm:ss zzz yyyy";
        BaseCalendar.Date date = normalize();
        StringBuilder sb = new StringBuilder(28);
        int index = date.getDayOfWeek();
        if (index == gcal.SUNDAY) {
            index = 8;
        }
        convertToAbbr(sb, wtb[index]).append(' ');                        // EEE
        convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' ');  // MMM
        CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd

        CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':');   // HH
        CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm
        CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss
        TimeZone zi = date.getZone();
        if (zi != null) {
            sb.append(zi.getDisplayName(date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz
        } else {
            sb.append("GMT");
        }
        sb.append(' ').append(date.getYear());  // yyyy
        return sb.toString();
    }
}

Date 表示距離1970-01-01 00:00:00的毫秒數,值與時區無關。大部分Date的方法都過期了,由Calendar類的方法替代java

public class DateTest {

	@SuppressWarnings("deprecation")
	public static void main(String[] args) {

		Date d = new Date();
		System.out.println(d);
		System.out.println(System.currentTimeMillis());
		
		long l = Date.parse("Sun Sep 10 03:16:48 CST 2017");
		System.out.println(l);
		Date data = new Date(l);
		System.out.println(data);
		
		Date day1=new Date(11,3,4);
		System.out.println(day1);
	}

}
輸出:
Sun Sep 10 03:17:22 CST 2017
1504984642047
1505035008000
Sun Sep 10 17:16:48 CST 2017
Tue Apr 04 00:00:00 CST 1911
Calendar
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {
    protected Calendar()
    {
        this(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));
        sharedZone = true;
    }
    protected Calendar(TimeZone zone, Locale aLocale)
    {
        fields = new int[FIELD_COUNT];
        isSet = new boolean[FIELD_COUNT];
        stamp = new int[FIELD_COUNT];

        this.zone = zone;
        setWeekCountData(aLocale);
    }
    public static Calendar getInstance()
    {
        Calendar cal = createCalendar(
            TimeZone.getDefaultRef(),Locale.getDefault(Locale.Category.FORMAT));
        cal.sharedZone = true;
        return cal;
    }      
     public static Calendar getInstance(TimeZone zone)
    {
        return createCalendar(zone, Locale.getDefault(Locale.Category.FORMAT));
    }
    public final Date getTime() {
        return new Date(getTimeInMillis());
    }
    public final void setTime(Date date) {
        setTimeInMillis(date.getTime());
    }
    public long getTimeInMillis() {
        if (!isTimeSet) {
            updateTime();
        }
        return time;
    }
........

Calendar類是一個抽象類,Calendar類的靜態方法getInstance()能夠初始化一個日曆對象:Calendar now = Calendar.getInstance(); app

可使用下面三個方法把日曆定到任何一個時間:
  set(int year ,int month,int date)  
  set(int year ,int month,int date,int hour,int minute) 
  set(int year ,int month,int date,int hour,int minute,int second) 
若是想得到年份、月份、小時等信息可使用: 
Now.get(Calendar.Month);這樣的方法 0表示一月,1表示二月  
  get(Calendar.DAY_OF_MONTH)得到這個月的第幾天
  get(Calendar.DAY_OF_WEEK)得到這個星期的第幾天 
  get(Calendar.DAY_OF_YEAR)得到這個年的第幾天  
  getTimeMillis()得到當前時間的毫秒錶示
Calendar和Date的轉化
(1) Calendar轉化爲Date
  Calendar cal=Calendar.getInstance();
  Date date=cal.getTime();
(2) Date轉化爲Calendar
  Date date=new Date();
  Calendar cal=Calendar.getInstance();
  cal.setTime(date);
格式化輸出日期時間:

    Date data = new Date();
    //SimpleDateFormat類用來對日期字符串進行解析和格式化輸出
    SimpleDateFormat f2=new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
    SimpleDateFormat f3=new SimpleDateFormat("yy/MM/dd HH:mm");
    SimpleDateFormat f4=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等價於now.toLocaleString()
    SimpleDateFormat f5=new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒 E ");
    System.out.println(f2.format(d));
    System.out.println(f3.format(d));
    System.out.println(f4.format(d));
    System.out.println(f5.format(d));ui

關於Calendar 的實現類:GregorianCalendarthis

Java中只攜帶了格里曆(公曆、陽曆)的實現,那就是java.util.GregorianCalendarspa

  Calendar calendar = new GregorianCalendar();code

  Calendar類有着對應的get方法,讓你獲取到年、月、日、小時、分鐘、秒、毫秒和給定日期的時區orm

  Calendar類有着對應的set方法,所以你也能夠對這些字段進行設置對象

相關文章
相關標籤/搜索