Java如何清除日期_Java中关于日期的处理方法
(1)Date
*? Date:
*? 介紹是java.util包下的Date類,這個(gè)類是負(fù)責(zé)描述日期這類數(shù)據(jù)的。
*? Date主要是描述當(dāng)前時(shí)間毫秒值對(duì)象。
*? 它中的很多方法不利于國(guó)際化,已經(jīng)被廢棄。
*
*? Date是把當(dāng)前的毫秒值封裝成Date對(duì)象。
*? 如何把一個(gè)毫秒值轉(zhuǎn)成Date對(duì)象
*? Date()它是把當(dāng)前的時(shí)間點(diǎn)的毫秒值轉(zhuǎn)成Date對(duì)象
*? Date(long date) 把我們指定的一個(gè)毫秒值轉(zhuǎn)成Date對(duì)象
*? setTime(long time) 把當(dāng)前的Date對(duì)象設(shè)置成指定的毫秒值對(duì)應(yīng)的那個(gè)日期對(duì)象
*
*? 如何把一個(gè)Date對(duì)象轉(zhuǎn)成毫秒值
*? Date類中有個(gè)getTime方法,可以把一個(gè)Date對(duì)象轉(zhuǎn)成毫秒值
public classDateDemo {public static voidmain(String[] args) {//創(chuàng)建Date對(duì)象
Date d = newDate();
d.setTime(1380000910915L);//Date d = new Date(1380000910915L);
System.out.println(d);
System.out.println(d.toGMTString());
System.out.println(d.toLocaleString());
System.out.println(d.getTime());
}
}
(2)DateFormat
DateFormat類:
這類位于java.text包下。
這個(gè)類是個(gè)抽象類,這個(gè)類不能直接new對(duì)象。
DateFormat類主要是把日期對(duì)象格式化成字符串?dāng)?shù)據(jù)
Date對(duì)象,通過DateFormat類,可以被格式化成字符串?dāng)?shù)據(jù)"xxxx-xx-xx hh:mm:ss"
DateFormat類還可以一個(gè)字符串?dāng)?shù)據(jù)解析成Date對(duì)象。
"xxxx-xx-xx hh:mm:ss"? 解析成Date對(duì)象
格式化:把對(duì)象格式化成文本(字符串)
解析:把文本(字符串)變成對(duì)象
由于DateFormat類是抽象類,它不能創(chuàng)建對(duì)象,但是這個(gè)類對(duì)外提供部分的靜態(tài)方法,這些方法可以獲取到本類的對(duì)象。
getDateInstance方法有重載,在獲取DateFormat對(duì)象的時(shí)候可以指定風(fēng)格
DateFormat.FULL:?? 2014年8月22日 星期五
DateFormat.LONG:??? 2014年8月22日
DateFormat.MEDIUM: 2014-8-22? 是默認(rèn)風(fēng)格
DateFormat.SHORT:?? 14-8-22
在使用DateFormat類中parse方法來(lái)解析一個(gè)字符串?dāng)?shù)據(jù)的時(shí)候,字符串?dāng)?shù)據(jù)給定的格式必須和獲取DateFormat對(duì)象時(shí)指定的風(fēng)格一致,
這樣才能夠解析,否則解析失敗。
//使用DateFormat類把字符串形式的日期數(shù)據(jù)解析成Date對(duì)象
public static void method_2() throwsParseException {//字符串形式的日期數(shù)據(jù)
String time = "2014年8月22日 星期五";//獲取DateFormat對(duì)象
DateFormat df =DateFormat.getDateInstance( DateFormat.FULL );//解析字符串
Date d =df.parse(time);
System.out.println(d);
}//使用DateFormat類對(duì)日期進(jìn)行格式化
public static voidmethod_1() {//獲取DateFormat對(duì)象//DateFormat df = DateFormat.getDateInstance();//DateFormat df = DateFormat.getDateInstance( DateFormat.SHORT );
DateFormat df =DateFormat.getDateTimeInstance( DateFormat.MEDIUM,DateFormat.MEDIUM );//創(chuàng)建一個(gè)Date對(duì)象
Date d = newDate();
System.out.println(d);//對(duì)這個(gè)Date對(duì)象進(jìn)行格式化
String time =df.format(d);
System.out.println(time);
}
(3)SimpleDateFormat
當(dāng)我們想按照自己指定的風(fēng)格來(lái)解析字符串?dāng)?shù)據(jù)或者格式化日期 對(duì)象時(shí),可以使用DateFormat的子類SimpleDateFormat。
/** 演示使用SimpleDateFormat格式化Date對(duì)象
* "xxxx年xx/xx HH時(shí)mm分ss秒"*/
public static voidmethod_4() {//獲取Date對(duì)象
Date d = newDate();//獲取格式化對(duì)象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM/dd HH時(shí)mm分ss秒");//對(duì)日期對(duì)象進(jìn)行格式化
String time =sdf.format(d);
System.out.println(time);
}/** 演示使用SimpleDateFormat類解析指定的格式數(shù)據(jù)
* "2014/08/22" 對(duì)應(yīng)的格式:"yyyy/MM/dd"
* "2414/08/22 23:23:23" "yyyy/MM/dd HH:mm:ss"*/
public static void method_3() throwsParseException {//字符串形式的日期數(shù)據(jù)
String time = "2414/08/22 23:23:23";//創(chuàng)建SimpleDateFormat對(duì)象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//解析
Date d =sdf.parse(time);
System.out.println(d);
}
/** 需求:
* 有2個(gè)字符串形式的日期數(shù)據(jù),需要計(jì)算它們相距多少天?
* "2014年09/28 23時(shí)13分01秒"
* "2009-02月12日 12時(shí)02分01秒"
*
* 思路:
* 要計(jì)算天數(shù),首先需要把字符串形式的日期數(shù)據(jù)變成毫秒值,然后再通過毫秒值的相減得到時(shí)間差,然后再轉(zhuǎn)成相距的天數(shù)。
* 如何把字符串?dāng)?shù)據(jù)變成毫秒值呢?
* 可以通過Date對(duì)象中的getTime方法,把一個(gè)Date對(duì)象轉(zhuǎn)成毫秒值
* 把字符串日期數(shù)據(jù)轉(zhuǎn)成Date對(duì)象,可以使用SimpleDateFormat類完成*/
public classDateTest {public static void main(String[] args) throwsParseException {
String s1_time= "2014年09/28 23時(shí)13分01秒";
String s2_time= "2013-09月27日 23時(shí)13分01秒";//獲取格式器
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM/dd HH時(shí)mm分ss秒");
SimpleDateFormat sdf2= new SimpleDateFormat("yyyy-MM月dd日 HH時(shí)mm分ss秒");//解析字符串
Date d1 =sdf1.parse(s1_time);
Date d2=sdf2.parse(s2_time);//把當(dāng)前的日期對(duì)象轉(zhuǎn)成毫秒值
long time_1 =d1.getTime();long time_2 =d2.getTime();long day = (Math.abs(time_1 - time_2))/1000/60/60/24;
System.out.println(day);
}
}
(4)Calendar
Calendar:
位于java.util包下。
這個(gè)類主要是用來(lái)描述日歷數(shù)據(jù)。
Calendar類是個(gè)抽象類可以通過getInstance方法獲取其實(shí)例。
它中定義很多靜態(tài)成員變量,把日歷上常見的年,月,日,時(shí)分秒,星期等數(shù)據(jù)都封裝成靜態(tài)的成員變量,
可以通過Calendar類直接獲取其對(duì)應(yīng)的數(shù)據(jù)。
在計(jì)算機(jī)中月份從0開始,0表示1月,1表示2月,11表示12月。
星期也是從0開始,0表示星期日,1表示星期一
我們獲得了Calendar實(shí)例之后,就可以通過Calendar類中的get方法獲取當(dāng)前這個(gè)實(shí)例中封裝的所有的數(shù)據(jù)。
在使用get方法時(shí),需要使用Calendar類本身和其中的靜態(tài)成員變量結(jié)合使用。
在Calendar類中有set方法,可以把Calendar實(shí)例中的對(duì)應(yīng)的數(shù)據(jù)修改為我們想指定的具體年月日時(shí)分秒等信息
add方法可以在指定的成員變量上修改它對(duì)應(yīng)的數(shù)據(jù)
public classCalendarDemo {public static voidmain(String[] args) {
method_2();
}/** 任意一年的2月有多少天
*
* 思路:
* 獲取一個(gè)Calendar實(shí)例,然后通過set方法把當(dāng)前的月份設(shè)置為3月1日。
* 然后在使用add方法,讓當(dāng)前的月中的天數(shù)-1.這時(shí)再去獲取當(dāng)前的天數(shù),一定是2月的最后一天。*/
public static voidmethod_2() {//獲取Calendar實(shí)例
Calendar c =Calendar.getInstance();//使用循環(huán)來(lái)提供年份
for( int year = 1998;year<=2100;year++){//使用set方法設(shè)置當(dāng)前年月日
c.set(year, 2, 1);//使用add方法讓天數(shù)-1
c.add(Calendar.DAY_OF_MONTH, -1);
System.out.println("當(dāng)前"+year+"年的2月共計(jì)有:"+c.get(Calendar.DAY_OF_MONTH));
}
}//Calendar方法演示
public static voidmethod_1() {//獲取Calendar實(shí)例
Calendar c =Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR));//使用set方法來(lái)設(shè)置年月日//c.set(2011, 12, 12);
c.add(Calendar.YEAR, -1);
System.out.println(c.get(Calendar.YEAR));
}
}
總結(jié)
以上是生活随笔為你收集整理的Java如何清除日期_Java中关于日期的处理方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 土豆炖猪皮怎么做好吃啊?
- 下一篇: 2018java二级考试大纲_2018年