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.GregorianCalendar
類spa
Calendar calendar =
new
GregorianCalendar();
code
ormCalendar
類有着對應的get
方法,讓你獲取到年、月、日、小時、分鐘、秒、毫秒和給定日期的時區
Calendar
類有着對應的set
方法,所以你也能夠對這些字段進行設置對象