欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的日期時(shí)間處理及格式化處理

 更新時(shí)間:2022年08月19日 10:43:08   作者:深淺Java  
這篇文章主要介紹了Java中的日期時(shí)間處理及格式化處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Date類

在java.util.Date包中封裝了許多現(xiàn)在的日期和時(shí)間,

構(gòu)造函數(shù):

Date類表示特定的時(shí)間,精確到毫秒。在Java1.1之前,Date類中有好幾個(gè)函數(shù),允許把時(shí)間解釋成年月日分秒,也允許解析和格式化日期字符串,由于這些函數(shù)不能實(shí)現(xiàn)國際化,從Java1.1之后,使用 Calendar 類實(shí)現(xiàn)日期和時(shí)間字段之間轉(zhuǎn)換。

 Date d=new Date();  //使用當(dāng)前日期和時(shí)間來處理
 Date d=new Date(long date);  //以基準(zhǔn)時(shí)間1970年1月1日經(jīng)過參數(shù)date指定的毫秒數(shù)

Date類常用方法:

方法名說明
boolean after(Date date)返回此方法的對象是不是在指定日期之后
boolean before(Date date)返回此方法的對象是不是在指定日期之前
Object clone()返回此對象的副本
int compareTo(Date anotherDate)比較兩個(gè)指定日期,相等則等于0,調(diào)用對象在指定日期之后返回1,否則返回-1.
boolean equals(Object obj)比較兩個(gè)日期的相等性
String toString()將Date對象以字符串形式輸出
long getTime返回從1970年1月1日次Date對象的毫秒數(shù)
import java.util.Date;

public class dome2{
 	public static void main(String[] args) {
 	  Date d=new Date(1000000000);
 	  Date d1=new Date();
 	 //d1在d之后
 	  System.out.println(d1.after(d));
 	  //d在d1之前
 	  System.out.println(d.before(d1));
 	  //判斷d在d1的什么位置
 	  System.out.println(d.compareTo(d1));
 	  //判斷兩個(gè)對象相等
 	  System.out.println(d.equals(d1));
 	   //獲取當(dāng)前時(shí)間的毫秒數(shù)
 	 System.out.println(d1.getTime());
	}
}

結(jié)果
true
true
-1
false
1629430067783

例1,給定一個(gè)266600000的毫秒數(shù),求出這個(gè)毫秒數(shù)代表幾天幾時(shí)幾分幾秒。

public class dome2{
 	public static void main(String[] args) {
 	  int date=266600000;
 	  date/=1000;   //毫秒數(shù)轉(zhuǎn)化成秒
 	  int  day=date/86400;   //一天有86400秒,計(jì)算有多少天
 	  int  hour=date%86400/3600;   //一小時(shí)有3600秒,計(jì)算有多少個(gè)小時(shí)
 	  int  minute=date%86400%3600/60;  //一分鐘60秒,計(jì)算有多少分鐘
 	  int  second=date%86400%3600%60;  //計(jì)算最后的秒數(shù)
 	  System.out.println(day+"天 "+hour+"時(shí) "+minute+"分 "+second+"秒");
 	  
	}
}

結(jié)果
3天 2時(shí) 3分 20秒

Calendar 類

Calendar 類是一個(gè)抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。Calendar類不能使用new關(guān)鍵字,它提供了一個(gè) getInstance() 方法來獲得Calendar類的對象。

Calendar c=Calendar.getInstance(); //獲得對象

Calendar 類常用方法:

方法名說明
void add(int field, int amount)根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時(shí)間量。1則代表的是對年份操作,2是對月份操作,3是對星期操作,5是對日期操作,11是對小時(shí)操作,12是對分鐘操作,13是對秒操作,14是對毫秒操作
boolean after()Calendar表示的時(shí)間是否在指定的時(shí)間之后。
boolean before()Calendar表示的時(shí)間是否在指定的時(shí)間之前。
Date getTime()返回此calendar時(shí)間值的date對象
long getTimeInMillis()返回Calendar的時(shí)間值
void clear()清空Calendar類的日期和時(shí)間
Object clone()創(chuàng)建并返回一個(gè)副本
int compareTo(Calendar anotherCalendar)比較兩個(gè)Calendar類的時(shí)間值,大則返回1,小則返回-1,否則返回0
int get(int field)返回指定日歷的時(shí)間
int getFirstDayOfWeek()獲取一周的第一天,在美國,第一天是sunday,而在法國則monday。
static Calendar getInstance()使用默認(rèn)時(shí)區(qū)和語言獲得一個(gè)日歷
int getActualMaximum(int field)返回指定日歷字段的最大值
int getActualMinimum(int field)返回指定日歷字段的最小值
void set(int field, int value)為指定的日歷字段設(shè)定指定值
void set(int year, int month, int date)設(shè)置日歷字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
void set(int year, int month, int date, int hourOfDay, int minute)設(shè)置日歷字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
void set(int year, int month, int date, int hourOfDay, int minute, int second)設(shè)置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
void setFirstDayOfWeek(int value)設(shè)置一個(gè)星期的第一天是哪天
void setTimeInMillis(long millis)利用給定long值設(shè)置此時(shí)calendar的當(dāng)前時(shí)間

Calendar字段:

Calendar類可以通過get方法獲取很多有關(guān)時(shí)間的值,在Calendar中定義了許多字段,也就是常量,不同的常量代表不同的時(shí)間名。

字段名說明
YEAR年份
MONTH月份,0代表1一月份,11代表12月份
DATE日期,一個(gè)月中的幾號
DAY_OF_MONTH與DATE相同,日期
HOUR十二小時(shí)制的幾時(shí)
HOUR_OF_DAY24小時(shí)制的幾時(shí)
MINUTE分鐘
SECOND
DAY_OF_WEEK一個(gè)星期的哪天,星期幾
AM_PM返回小時(shí)是在中午之前還是在中午之后,1代表下午,0代表上午
DAY_OF_YEAR返回當(dāng)前年中的第多少天
WEEK_OF_YEAR一年當(dāng)中的第幾個(gè)星期
WEEK_OF_MONTH一個(gè)月中的第幾個(gè)星期

Calendar類返回實(shí)例:

import java.util.Calendar;

public class dome2{
 	public static void main(String[] args) {
        Calendar c=Calendar.getInstance();
        System.out.println("返回當(dāng)前時(shí)間:"+c.getTime());
        System.out.println("返回當(dāng)前年份:"+c.get(Calendar.YEAR));
        System.out.println("返回當(dāng)前月份:"+(c.get(Calendar.MONTH)+1));
        System.out.println("返回當(dāng)前的日"+c.get(Calendar.DATE));
        System.out.println("返回當(dāng)前星期幾:"+(c.get(Calendar.DAY_OF_WEEK)-1));
        System.out.println("返回當(dāng)前是一年中的第幾天:"+c.get(Calendar.DAY_OF_YEAR));
        System.out.println("返回當(dāng)前是一年中的第幾個(gè)星期:"+c.get(Calendar.WEEK_OF_YEAR));
        System.out.println("返回當(dāng)前是一個(gè)月中的第幾個(gè)星期:"+c.get(Calendar.WEEK_OF_MONTH));
        System.out.println("返回當(dāng)前的小時(shí)(十二小時(shí)制):"+c.get(Calendar.HOUR));
        System.out.println("返回當(dāng)前的小時(shí)(二十四小時(shí)制):"+c.get(Calendar.HOUR_OF_DAY));
        System.out.println("返回當(dāng)前是時(shí)間是多少分:"+c.get(Calendar.MINUTE));
        System.out.println("返回當(dāng)前時(shí)間的秒:"+c.get(Calendar.SECOND));
	}
}

例子:

public class dome2{
 	public static void main(String[] args) {
         Calendar c=Calendar.getInstance();
         c.set(2020,3,1,15,5,23);
         Date date=c.getTime();
         System.out.println(date);
         StringBuffer str=new StringBuffer();
         str.append(c.get(Calendar.YEAR)+"年");
         str.append(c.get(Calendar.MONTH)+"月");   //設(shè)定的月份不用加1
         str.append(c.get(Calendar.DATE)+"日");
         str.append(c.get(Calendar.HOUR)+"時(shí)");
         str.append(c.get(Calendar.MINUTE)+"分");
         str.append(c.get(Calendar.SECOND)+"秒");
         System.out.println(str.toString());
	}
}

結(jié)果
Wed Apr 01 15:05:23 CST 2020
2020年3月1日3時(shí)5分23秒

DateFormat 類

  • DateFormat 是日期/時(shí)間格式化子類的抽象類,它以與語言無關(guān)的方式格式化并解析日期或時(shí)間。日期/時(shí)間格式化子類(如 SimpleDateFormat)允許進(jìn)行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和標(biāo)準(zhǔn)化。
  • DateFormat 可幫助進(jìn)行格式化并解析任何語言環(huán)境的日期。對于月、星期,甚至日歷格式(陰歷和陽歷),其代碼可完全與語言環(huán)境的約定無關(guān)。
  • DateFormat 不能使用new關(guān)鍵字。要使用 DateFormat 類的getDateInstance()方法來創(chuàng)建對象。
DateFormat d=DateFormat.getInstance();  //創(chuàng)建對象

在DateFormat對象中使用方法來對時(shí)間和日期進(jìn)行格式化,見圖。

方法名說明
String format(Date date)將Date的日期和時(shí)間格式化成字符串
Calendar getCalendar()返回當(dāng)前時(shí)間日期相關(guān)的日歷
static DateFormat getDateInstance()返回默認(rèn)語言格式化的日期,例如幾年幾月幾號
static DateFormat getDateInstance(int style)獲取指定的格式化日期的日歷,datestyle中:FULL表示幾年幾月幾號星期幾,MEDIUM和LONG表示幾年幾月幾日,SHORT表示Y/M/D
static DateFormat getDateInstance(int style,Locale locale)獲取指定日期格式化風(fēng)格和語言環(huán)境的日歷
static DateFormat getDateTimeInstance()獲取默認(rèn)格式化風(fēng)格和語言環(huán)境的日期時(shí)間格式,如幾年幾月幾日上午或上午hh:mm:ss
static DateFormat getDateTimeInstance(int dateStyle,int timeStyle)獲取指定格式化風(fēng)格和語言環(huán)境的時(shí)間日期格式,timeStyle中:FULL表示中國標(biāo)準(zhǔn)時(shí)間 上午還是下午hh:mm:ss;SHORT和MEDIUM表示上午或下午hh:mm:ss;LONG表示CST 上午或下午hh:mm:ss
static DateFormat getDateTimeInstance(int dateStyle,int timeStyle,Locale locale)獲取指定日期時(shí)間格式風(fēng)格和語言環(huán)境的日歷
static DateFormat getTimeInstance()獲取默認(rèn)格式化風(fēng)格和語言環(huán)境的時(shí)間格式
static DateFormat getTimeInstance(int style)獲取指定格式化風(fēng)格和默認(rèn)語言環(huán)境的時(shí)間格式,參照上面第七個(gè)的timeStyle格式方式
static DateFormat getTimeInstance(int style,Locale locale)獲取指定格式化風(fēng)格和指定語言環(huán)境的時(shí)間格式
Date parse(String source)將字符串解析成日期/時(shí)間

例子:

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class dome2{
 	public static void main(String[] args) {
         DateFormat d=DateFormat.getInstance();
         //創(chuàng)建指定日期格式和中國語言環(huán)境的日期格式
         DateFormat d1=d.getDateInstance(DateFormat.FULL,Locale.CHINA);
         DateFormat d2=d.getDateInstance(DateFormat.LONG,Locale.CHINA);
         DateFormat d3=d.getDateInstance(DateFormat.SHORT,Locale.CHINA);
         DateFormat d4=d.getDateInstance(DateFormat.MEDIUM,Locale.CHINA);
         //創(chuàng)建指定時(shí)間格式和中國語言環(huán)境的時(shí)間格式
         DateFormat d5=d.getTimeInstance(DateFormat.FULL,Locale.CHINA);
         DateFormat d6=d.getTimeInstance(DateFormat.LONG,Locale.CHINA);
         DateFormat d7=d.getTimeInstance(DateFormat.SHORT,Locale.CHINA);
         DateFormat d8=d.getTimeInstance(DateFormat.MEDIUM,Locale.CHINA);
         //返回指定風(fēng)格和語言環(huán)境的日期
         String s1=d1.format(new Date());
         String s2=d2.format(new Date());
         String s3=d3.format(new Date());
         String s4=d4.format(new Date());
         //返回指定風(fēng)格和中國語言環(huán)境的時(shí)間
         String s5=d5.format(new Date());
         String s6=d6.format(new Date());
         String s7=d7.format(new Date());
         String s8=d8.format(new Date());
         System.out.println("FULL的是:"+s1+"\t"+s5);
         System.out.println("LONG的是:"+s2+"\t"+s6);
         System.out.println("SHORT的是:"+s3+"\t"+s7);
         System.out.println("MEDIUM的是:"+s4+"\t"+s8);
 	}
}

結(jié)果
FULL的是:2021年8月21日星期六 中國標(biāo)準(zhǔn)時(shí)間 下午8:49:44
LONG的是:2021年8月21日 CST 下午8:49:44
SHORT的是:2021/8/21 下午8:49
MEDIUM的是:2021年8月21日 下午8:49:44

SimpleDateFormat 類

在使用DateFormat 類時(shí),只有固定格式,在java.text.SimpleDateFormat包有一個(gè)以與語言環(huán)境有關(guān)的方式來格式化和解析日期的具體類。它允許進(jìn)行格式化(日期 -> 文本)、解析(文本 -> 日期)和規(guī)范化。 SimpleDateFormat 使得可以選擇任何用戶定義的日期-時(shí)間格式的模式。

SimpleDateFormat 類基本構(gòu)造方法:

SimpleDateFormat 類是DateFormat 類的一個(gè)子類。

  • new SimpleDateFormat();默認(rèn)模式和默認(rèn)日期格式符號創(chuàng)造。
  • SimpleDateFormat(String pattern);使用指定的模式和默認(rèn)日期格式符號創(chuàng)造。
  • SimpleDateFormat(String pattern, Locale locale);使用指定的模式和指定語言環(huán)境的默認(rèn)日期符號構(gòu)造。

DateFormat 也可以new SimpleDateFormat對象。有些方法還是建議通過 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 來創(chuàng)建日期-時(shí)間格式器。

DateFormat d=new SimpleDateFormat();

代表日期和時(shí)間的模式元素字母:

字母含義示例
y年,一個(gè)y代表一位"yyy"代表019,"yyyy"代表2019
M月份例如八月,M代表8,MM代表08
w一年中的第幾周常用ww表示
W一個(gè)月中的第幾周常用WW表示
d一個(gè)月中的第幾天常用dd表示
D一年中的第幾天常用DDD表示
E星期幾,用E表示星期,根據(jù)不同語言環(huán)境返回CHINA表示星期幾,US表示英文縮寫
a上午或下午am代表上午,pm代表下午
H一天中的小時(shí)數(shù),二十四小時(shí)制常用HH表示
h一天中的小時(shí)數(shù),十二小時(shí)制常用hh表示
m分鐘數(shù)常用mm表示
s秒數(shù)常用ss表示
S毫秒數(shù)常用SSS表示

返回當(dāng)前的時(shí)間

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class dome2{
 	public static void main(String[] args) {
 		DateFormat d=new SimpleDateFormat("yyyy年MM月dd日HH時(shí)mm分ss秒SSS毫秒");
 		System.out.println(d.format(new Date()));
 	}
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論