Java常用类(2)--日期时间相关类Date、Calendar、LocalDateTime、Instant全面
文章目錄
- java.lang.System類
- java.util.Date類
- java.sql.Date類
- java.text.SimpleDateFormat類
- java.util.Calendar(日歷)類
- java.time類
- java.time.Instant類
- java.time.format.DateTimeFormatter 類
- 其它API
java.lang.System類
System類提供的public static long currentTimeMillis()用來返回當前時間與1970年1月1日0時0分0秒之間以毫秒為單位的時間差(時間戳)。(此方法適于計算時間差)
long time = System.currentTimeMillis(); System.out.println(time);java.util.Date類
構造器:
①Date():創建的對象可以獲取本地當前時間
②Date(long date):創建指定毫秒數的Date對象,相當于又將時間戳轉換成String形式
常用方法
①getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。
②toString():把此 Date 對象轉換為以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是時間標準。
java.sql.Date類
是java.util.Date類的子類,對應著數據庫中的日期類型的變量。
構造器:java.sql.Date(時間戳)
常用方法:同上
java.sql.Date與java.util.Date轉換,可以通過多態和getTime()方法
import java.util.Date;public class DataTest {public static void main(String[] args) {Date date = new Date();java.sql.Date sqlDate = new java.sql.Date(date.getTime());System.out.println(sqlDate);} }java.text.SimpleDateFormat類
Date類的API不易于國際化,大部分被廢棄了,java.text.SimpleDateFormat類是一個不與語言環境有關的方式來格式化和解析日期的具體類。其允許進行①格式化:日期—>字符串、②解析:字符串—>日期。
格式化:
1.實例化
①SimpleDateFormat() :默認的模式和語言環境創建對象
②SimpleDateFormat(String pattern):該構造方法可以用參數pattern指定的格式創建一個對象
2.格式化
實例化對象調用 String format(Date date)方法格式化時間對象
關于指定格式:
解析(格式化逆過程):
Date parse(String source):依據格式解析字符串,以生成一個日期(注意格式的匹配對應,否則拋異常)
java.util.Calendar(日歷)類
這是一個抽象(abstract)類,主用用于完成日期字段之間相互操作的功能。
實例化:
①使用Calendar.getInstance()該靜態方法
②調用它的子類GregorianCalendar的構造器
常用方法:
import java.util.Calendar; import java.util.Date;public class CalendarTest {public static void main(String[] args) {Calendar instance = Calendar.getInstance();//get():int get(int field)int ofMouth = instance.get(Calendar.DAY_OF_MONTH);System.out.println(ofMouth);int ofYear = instance.get(Calendar.DAY_OF_YEAR);System.out.println(ofYear);//set():void set(int field,int value)instance.set(Calendar.DAY_OF_MONTH,9);System.out.println(instance.get(Calendar.DAY_OF_MONTH));//add:void add(int field,int amount)instance.add(Calendar.DAY_OF_MONTH,-2);System.out.println(instance.get(Calendar.DAY_OF_MONTH));//getTime:final Date getTime() 將日歷類型轉換為Date類型Date time = instance.getTime();System.out.println(time);//setTime:final void setTime(Date date) 將Date類型轉換為日歷類型instance.setTime(new Date());System.out.println("********" + instance.getTime());} }
一個Calendar的實例是系統時間的抽象表示,通過get(int field)方法來取得想要的時間信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND。
java.time類
LocalDate、LocalTime、LocalDateTime 類是其中較重要的幾個子類,它們的實例
是不可變的對象,分別表示使用 ISO-8601日歷系統的日期、時間、日期和時間。
實例化:
其他常用方法:
java.time.Instant類
Instant:時間線上的一個瞬時點。 這可能被用來記錄應用程序中的事件時間
戳。
java.time.format.DateTimeFormatter 類
該類提供了三種格式化方法:
①預定義的標準格式,如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
②本地化相關的格式,如:ofLocalizedDateTime(FormatStyle.LONG)
③自定義的格式,如:ofPattern(“yyyy-MM-dd hh:mm:ss”)
其它API
ZoneId:該類中包含了所有的時區信息,一個時區的ID,如 Europe/Paris
ZonedDateTime:一個在ISO-8601日歷系統時區的日期時間,
如 2007-12-03T10:15:30+01:00 Europe/Paris
其中每個時區都對應著ID,地區ID都為“{區域}/{城市}”的格式,例如:
Asia/Shanghai等
Clock:使用時區提供對當前即時、日期和時間的訪問的時鐘
持續時間:Duration,用于計算兩個“時間”間隔
日期間隔:Period,用于計算兩個“日期”間隔
TemporalAdjuster : 時間校正器。有時我們可能需要獲取例如:將日期調整到“下一個工作日”等操作。
TemporalAdjusters : 該類通過靜態方法(firstDayOfXxx()/lastDayOfXxx()/nextXxx())提供了大量的常用TemporalAdjuster 的實現
總結
以上是生活随笔為你收集整理的Java常用类(2)--日期时间相关类Date、Calendar、LocalDateTime、Instant全面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 火腿肠是什么做的东西(吃火腿肠对身体有危
- 下一篇: Java常用类(3)--Java比较器C