日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java日期时间

發布時間:2025/3/21 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java日期时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java.util.Date類

java.util提供了Date類來封裝日期和時間。實例化Date類的兩個構造函數,

Date();--當前時間

Date(long millisec);--距離格林威治時間1970年1月1日millisec毫秒的時間

使用SimpleDateFormat格式化日期

import java.util.*; import java.text.*;public class DateDemo {public static void main(String args[]) {Date now = new Date( );SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");System.out.println("Current Date: " + ft.format(now));//Current Date: 火 2016.11.01 at 01:37:56 午後 CST } }

簡單的DateFormat格式化編碼

字母描述示例
G紀元標記AD
y四位年份2001
M月份July or 07
d一個月的日期10
h?A.M./P.M. (1~12)格式小時12
H一天中的小時 (0~23)22
m分鐘數30
s秒數55
S毫秒數234
E星期幾Tuesday
D一年中的日子360
F一個月中第幾周的周幾2 (second Wed. in July)
w一年中第幾周40
W一個月中第幾周1
aA.M./P.M. 標記PM
k一天中的小時(1~24)24
K?A.M./P.M. (0~11)格式小時10
z時區Eastern Standard Time
'文字定界符Delimiter
"單引號`

使用printf格式化日期

printf方法可以很輕松地格式化時間和日期。使用兩個字母格式,它以t開頭并且以下面轉換字符表格中的一個字母結尾。例如:

import java.util.Date;public class DateDemo {public static void main(String args[]) {// 初始化 Date 對象Date date = new Date();// 使用toString()顯示日期和時間System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date);//Due date: 11月 01, 2016 } }

日期和時間轉換字符

字符描述例子
c完整的日期和時間Mon May 04 09:51:52 CDT 2009
FISO 8601 格式日期2004-02-09
DU.S. 格式日期 (月/日/年)02/09/2004
T24小時時間18:05:19
r12小時時間06:05:19 pm
R24小時時間,不包含秒18:05
Y4位年份(包含前導0)2004
y年份后2位(包含前導0)04
C年份前2位(包含前導0)20
B月份全稱February
b月份簡稱Feb
n2位月份(包含前導0)02
d2位日子(包含前導0)03
e2位日子(不包含前導0)9
A星期全稱Monday
a星期簡稱Mon
j3位年份(包含前導0)069
H2位小時(包含前導0), 00 到 2318
k2位小時(不包含前導0), ?0 到 2318
I2位小時(包含前導0), 01 到 1206
l2位小時(不包含前導0), ?1 到 126
M2位分鐘(包含前導0)05
S2位秒數(包含前導0)19
L3位毫秒(包含前導0)047
N9位納秒(包含前導0)047000000
P大寫上下午標志PM
p小寫上下午標志pm
z從GMT的RFC 822數字偏移-0800
Z時區PST
s自 1970-01-01 00:00:00 GMT的秒數1078884319
Q自 1970-01-01 00:00:00 GMT的毫妙1078884319047

?

解析字符串為時間

SimpleDateFormat亦可將符合format的字符串裝換成Date對象

package per.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class TestDataFormat {public static void main(String[] args){Date date = new Date();SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");String str = "2016.11.01";Date date2=new Date();try {date2 = df.parse(str);System.out.println(date2);}catch (ParseException e){System.out.println("Unparseable using"+df);}}//Tue Nov 01 00:00:00 CST 2016 }

測量時間

結束時間-開始時間=用時。System.currentTimeMillis();--取得系統當前時間秒數。

import java.util.*;public class TestDataFormat {public static void main(String args[]) {try {long start = System.currentTimeMillis( );System.out.println(new Date( ) + "\n");Thread.sleep(6000);//讓當前線程休眠(阻塞)6秒,讓出CPU的使用,給別的線程利用cpu的機會System.out.println(new Date( ) + "\n");long end = System.currentTimeMillis( );long diff = end - start;System.out.println("Difference is : " + diff);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }

Calendar類

創建一個Canlendar對象---

Calendar?c?=?Calendar.getInstance();//默認是當前日期

創建一個指定日期的Canlendar對象

Calendar c1= new Calendar.getIntance();

c1.set(2016,11,01);//20161101

Calendar類對象字段類型

Calendar類中用一下這些常量表示不同的意義,jdk內的很多類其實都是采用的這種思想

常量描述
Calendar.YEAR年份
Calendar.MONTH月份
Calendar.DATE日期
Calendar.DAY_OF_MONTH日期,和上面的字段意義完全相同
Calendar.HOUR12小時制的小時
Calendar.HOUR_OF_DAY24小時制的小時
Calendar.MINUTE分鐘
Calendar.SECOND
Calendar.DAY_OF_WEEK星期幾

Calendar類對象信息的設置

Set設置

如:

Calendar c1 = Calendar.getInstance();

調用:

public final void set(int year,int month,int date) c1.set(2009, 6 - 1, 12);//把Calendar對象c1的年月日分別設這為:2009、6、12

利用字段類型設置

如果只設定某個字段,例如日期的值,則可以使用如下set方法:

public void set(int field,int value)

把 c1對象代表的日期設置為10號,其它所有的數值會被重新計算

c1.set(Calendar.DATE,10);

把c1對象代表的年份設置為2008年,其他的所有數值會被重新計算

c1.set(Calendar.YEAR,2008);

其他字段屬性set的意義以此類推

Add設置

Calendar c1 = Calendar.getInstance();

把c1對象的日期加上10,也就是c1也就表示為10天后的日期,其它所有的數值會被重新計算

c1.add(Calendar.DATE, 10);

把c1對象的日期減去10,也就是c1也就表示為10天前的日期,其它所有的數值會被重新計算

<pre>c1.add(Calendar.DATE, -10);

Calendar類對象信息的獲得

Calendar c1 = Calendar.getInstance(); // 獲得年份 int year = c1.get(Calendar.YEAR); // 獲得月份 int month = c1.get(Calendar.MONTH) + 1; // 獲得日期 int date = c1.get(Calendar.DATE); // 獲得小時 int hour = c1.get(Calendar.HOUR_OF_DAY); // 獲得分鐘 int minute = c1.get(Calendar.MINUTE); // 獲得秒 int second = c1.get(Calendar.SECOND); // 獲得星期幾(注意(這個與Date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推) int day = c1.get(Calendar.DAY_OF_WEEK);

GregorianCalendar類

Calendar類實現了公歷日歷,GregorianCalendar是Calendar類的一個具體實現。

Calendar 的getInstance()方法返回一個默認用當前的語言環境和時區初始化的GregorianCalendar對象。GregorianCalendar定義了兩個字段:AD和BC。這些代表公歷定義的兩個時代。

下面列出GregorianCalendar對象的幾個構造方法:

序號構造函數和說明
1GregorianCalendar()?
在具有默認語言環境的默認時區內使用當前時間構造一個默認的 GregorianCalendar。
2GregorianCalendar(int year, int month, int date)?
在具有默認語言環境的默認時區內構造一個帶有給定日期設置的 GregorianCalendar
3GregorianCalendar(int year, int month, int date, int hour, int minute)?
為具有默認語言環境的默認時區構造一個具有給定日期和時間設置的 GregorianCalendar。
4GregorianCalendar(int year, int month, int date, int hour, int minute, int second)?
? 為具有默認語言環境的默認時區構造一個具有給定日期和時間設置的 GregorianCalendar。
5GregorianCalendar(Locale aLocale)?
在具有給定語言環境的默認時區內構造一個基于當前時間的 GregorianCalendar。
6GregorianCalendar(TimeZone zone)?
在具有默認語言環境的給定時區內構造一個基于當前時間的 GregorianCalendar。
7GregorianCalendar(TimeZone zone, Locale aLocale)?
?在具有給定語言環境的給定時區內構造一個基于當前時間的 GregorianCalendar。

這里是GregorianCalendar 類提供的一些有用的方法列表:

?

序號方法和說明
1void add(int field, int amount)?
根據日歷規則,將指定的(有符號的)時間量添加到給定的日歷字段中。
2protected void computeFields()?
轉換UTC毫秒值為時間域值
3protected void computeTime()?
覆蓋Calendar ,轉換時間域值為UTC毫秒值
4boolean equals(Object obj)?
比較此 GregorianCalendar 與指定的 Object。
5int get(int field)?
獲取指定字段的時間值
6int getActualMaximum(int field)?
返回當前日期,給定字段的最大值
7int getActualMinimum(int field)?
返回當前日期,給定字段的最小值
8int getGreatestMinimum(int field)?
?返回此 GregorianCalendar 實例給定日歷字段的最高的最小值。
9Date getGregorianChange()?
獲得格里高利歷的更改日期。
10int getLeastMaximum(int field)?
返回此 GregorianCalendar 實例給定日歷字段的最低的最大值
11int getMaximum(int field)?
返回此 GregorianCalendar 實例的給定日歷字段的最大值。
12Date getTime()
獲取日歷當前時間。
13long getTimeInMillis()?
獲取用長整型表示的日歷的當前時間
14TimeZone getTimeZone()?
獲取時區。
15int getMinimum(int field)?
返回給定字段的最小值。
16int hashCode()?
重寫hashCode.
17boolean isLeapYear(int year)
確定給定的年份是否為閏年。
18void roll(int field, boolean up)?
在給定的時間字段上添加或減去(上/下)單個時間單元,不更改更大的字段。
19void set(int field, int value)?
用給定的值設置時間字段。
20void set(int year, int month, int date)?
設置年、月、日的值。
21void set(int year, int month, int date, int hour, int minute)?
設置年、月、日、小時、分鐘的值。
22void set(int year, int month, int date, int hour, int minute, int second)?
設置年、月、日、小時、分鐘、秒的值。
23void setGregorianChange(Date date)?
設置 GregorianCalendar 的更改日期。
24void setTime(Date date)?
用給定的日期設置Calendar的當前時間。
25void setTimeInMillis(long millis)?
用給定的long型毫秒數設置Calendar的當前時間。
26void setTimeZone(TimeZone value)?
用給定時區值設置當前時區。
27String toString()?
返回代表日歷的字符串。

from:?https://www.cnblogs.com/blackheartinsunshine/p/6019408.html?

總結

以上是生活随笔為你收集整理的Java日期时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。