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