Date(long date)
分配 Date對象並初始化此對象,以表示自從標準基準時間(稱爲“曆元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數
SimpleDateFormat.parse(String source)
從給定字符串的開始解析文本,以生成一個日期。該方法不使用給定字符串的整個文本。返回解析字符串得到的 Date。
//創建給定模式和默認語言環境的DateFormat對象
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String stringDate = "2011-3-14 9:6:20"; //定義字符串類型的日期/時間
System.out.println(stringDate); //輸出字符串類型的日期/時間
Date date = null; //定義Date對象
date = df.parse(stringDate); //將字符串類型的日期/時間解析爲Date類型
SimpleDateFormat(String pattern)
用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。注:此構造方法可能不支持所有語言環境。要覆蓋所有語言環境,請使用 DateFormat 類中的工廠方法。
pattern - 描述日期和時間格式的模式
SimpleDateFormat.format(Date date)
將一個 Date 格式化爲日期/時間字符串。
參數:
date - 要格式化爲時間字符串的時間值。
返回:
已格式化的時間字符串。
Calendar
Calendar是一個抽象類,它爲特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日曆字段之間的轉換提供了一些方法,併爲操作日曆字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的偏移量。
Calendar.getTime()
返回一個表示此 Calendar 時間值(從曆元至現在的毫秒偏移量)的 Date 對象。
Calendar.getTimeInMillis()
返回此 Calendar 的時間值,以毫秒爲單位。當前時間,以從曆元至現在所經過的 UTC 毫秒數形式。
Date.getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。
Date.getMonth()
返回表示月份的數字,該月份包含或開始於此 Date 對象所表示的瞬間。返回的值在 0 和 11 之間,值 0 表示 1 月。
這個方法被Calendar.get(Calendar.MONTH)所替代
幾種方式之間的轉換
1.Calendar 轉化 String
Calendar calendat = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(calendar.getTime());
2.String 轉化Calendar
String str="2012-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
3.Date 轉化String
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String dateStr=sdf.format(new Date());
4.String 轉化Date
String str="2012-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date= sdf.parse(str);
5.Date 轉化Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(new java.util.Date());
6.Calendar轉化Date
Calendar calendar = Calendar.getInstance();
java.util.Date date =calendar.getTime();
7.String 轉成 Timestamp
Timestamp ts = Timestamp.valueOf("2012-1-14 08:11:00");
8.Date 轉 TimeStamp
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = df.format(new Date());
Timestamp ts = Timestamp.valueOf(time);
new Date().getTime() 返回: 1481953167537
new Date() 返回: Sat Dec 17 13:40:12 GMT+08:00 2016
Calendar.getInstance() 返回:
[time=1481953297259,areFieldsSet=true,lenient=true,zone=Asia/Shanghai,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=11,WEEK_OF_YEAR=51,WEEK_OF_MONTH=3,DAY_OF_MONTH=17,DAY_OF_YEAR=352,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=41,SECOND=37,MILLISECOND=259,ZONE_OFFSET=28800000,DST_OFFSET=0]
Timestamp 解釋
一個與 java.util.Date 類有關的瘦包裝器 (thin wrapper),它允許 JDBC API 將該類標識爲 SQL TIMESTAMP 值。它通過允許小數秒到納秒級精度的規範來添加保存 SQL TIMESTAMP 小數秒值的能力。Timestamp 也提供支持時間戳值的 JDBC 轉義語法的格式化和解析操作的能力。
計算 Timestamp 對象的精度爲二者之一:
- 19 ,其爲 yyyy-mm-dd hh:mm:ss 格式下的字符數
- 20 + s ,其爲 yyyy-mm-dd hh:mm:ss.[fff...] 格式下的字符數,s 表示給定 Timestamp 的標度(其小數秒精度)。
注:此類型由 java.util.Date 和單獨的毫微秒值組成。只有整數秒纔會存儲在 java.util.Date 組件中。小數秒(毫微秒)是獨立存在的。傳遞不是 java.sql.Timestamp 實例的對象時,Timestamp.equals(Object) 方法永遠不會返回 true,因爲日期的毫微秒組件是未知的。因此,相對於 java.util.Date.equals(Object) 方法而言,Timestamp.equals(Object) 方法是不對稱的。此外,hashcode 方法使用底層 java.util.Date 實現並因此在其計算中不包括毫微秒。
鑑於 Timestamp 類和上述 java.util.Date 類之間的不同,建議代碼一般不要將 Timestamp 值視爲 java.util.Date 的實例。Timestamp 和 java.util.Date 之間的繼承關係實際上指的是實現繼承,而不是類型繼承。