時間操作

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 之間的繼承關係實際上指的是實現繼承,而不是類型繼承。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章