Java——日期类
Java——日期類
摘要:本文主要記錄了Java開發中用到的和日期有關的類以及對日期的操作。
部分內容來自以下博客:
https://www.cnblogs.com/talk/p/2680591.html
概述
日期在Java中是一塊非常復雜的內容,對于一個日期在不同的語言國別環境中,日期的國際化,日期和時間之間的轉換,日期的加減運算,日期的展示格式都是非常復雜的問題。
java.util.Date
Date類表示特定的瞬間,精確到毫秒。從JDK1.1開始,應該使用Calendar類實現日期和時間字段之間轉換,使用DateFormat類來格式化和分析日期字符串。Date中的把日期解釋為年、月、日、小時、分鐘和秒值的方法已廢棄。
構造方法
Date():分配Date對象并用當前時間初始化此對象,以表示分配它的時間(精確到毫秒)。
Date(long date):分配Date對象并初始化此對象,以表示自從標準基準時間(稱為“歷元(epoch)”,即1970年01月01日 00:00:00 GMT)以來的指定毫秒數。
java.text.DateFormat
DateFormat類是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化并分析日期或時間。日期/時間格式化子類(如 SimpleDateFormat)允許進行格式化(日期 -> 文本)、分析(文本-> 日期)和標準化。將日期表示為Date對象,或者表示為從 GMT(格林尼治標準時間)1970年01月01日 00:00:00這一刻開始的毫秒數。
DateFormat不是同步的。建議為每個線程創建獨立的格式實例。如果多個線程同時訪問一個格式,則它必須保持外部同步。
java.text.SimpleDateFormat
SimpleDateFormat類是一個以與語言環境相關的方式來格式化和分析日期的具體類。
SimpleDateFormat使得可以選擇任何用戶定義的日期-時間格式的模式。但是,仍然建議通過DateFormat中的getTimeInstance、getDateInstance或getDateTimeInstance來新的創建日期-時間格式化程序。
格式化字段含義
、
將Date轉化為常見的日期時間字符串
1 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 2 System.out.println(dateFormat.format(new Date()));將文本日期轉化為Date
1 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 2 Date date = null; 3 try { 4 date = dateFormat.parse("2019-01-01 01:30:28"); 5 } catch (ParseException e) { 6 e.printStackTrace(); 7 } 8 System.out.println(date);java.util.Calendar
Calendar類是一個抽象類,它為特定瞬間與一組諸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日歷字段之間的轉換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距歷元(即格林威治標準時間1970年01月01日的00:00:00.000,格里高利歷)的偏移量。
與其他語言環境敏感類一樣,Calendar提供了一個類方法getInstance,以獲得此類型的一個通用的對象。Calendar的getInstance方法返回一個Calendar對象,其日歷字段已由當前日期和時間初始化。
常用方法
getInstance():公有靜態方法,用于獲取Calendar的實例。
set(int field, int value):設置日歷的年月日時分秒。
get(int field):獲取日歷的年月日時分秒。
setTime(Date date):設置給定的日期。
getTime():獲取日期。
add(int field, int amount):按照日歷的規則,給指定字段添加或減少時間量。
getTimeInMillies():以毫秒為單位返回該日歷的時間值。
java.util.GregorianCalendar
GregorianCalendar是Calendar的一個具體子類,提供了世界上大多數國家使用的標準日歷系統。
GregorianCalendar是一種混合日歷,在單一間斷性的支持下同時支持儒略歷和格里高利歷系統,在默認情況下,它對應格里高利日歷創立時的格里高利歷日期(某些國家是在1582年10月15日創立,在其他國家要晚一些)。可由調用方通過調用setGregorianChange()來更改起始日期。
轉載于:https://www.cnblogs.com/shamao/p/10918627.html
總結
- 上一篇: 遗留问题,排雷会炸,不排也会炸!
- 下一篇: Java实现九宫格