java操作日期主要有以下幾種方式肯腕。
java.util.Date
import java.util.Date;//引入包
Date today=new Date();//定義對(duì)象
//使用Date類代表指定的時(shí)間
Date d1 = new Date(2015,7,6);
日期類中共定義了六種構(gòu)造函數(shù):
(1)public Date()
Date today=new Date()膀篮;//today被設(shè)置成創(chuàng)建時(shí)刻相對(duì)應(yīng)的日期時(shí)間。
(2)public Date (long date)
long 型的參數(shù)date可以通過(guò)調(diào)用Date類中的static方法parse(String s)來(lái)獲得。
Date day=new Date(l);
//day中時(shí)間為1997年 1月6號(hào)星期一,13:3:00朦乏。
(3)public Date(String s)
按字符串s產(chǎn)生一日期對(duì)象。s的格式與方法parse中字符串參數(shù)的模式相同氧骤。
例 Date day=new Date("Mon 6 Jan 1997 13:3:00");
//day 中時(shí)間為1997年1月6號(hào)星期一呻疹,13:3:00.
(4)public Date(int year,int month,int date)
(5)public Date(int year,int month,int date,int hrs,int min)
(6)public Date(int year,int month,int date,int hrs,int min,int sec)
java.text.DateFormat
DateFormat.getDateInstance 可獲得該國(guó)家的標(biāo)準(zhǔn)日期格式。
DateFormat.getTimeInstance 可獲得該國(guó)家的時(shí)間格式筹陵。
DateFormat.getDateTimeInstance 可獲得日期和時(shí)間格式刽锤。
import java.text.DateFormat;
Date today = new Date();
Object myString = DateFormat.getDateInstance().format(today);
要格式化不同語(yǔ)言環(huán)境的日期,可在 getDateInstance() 的調(diào)用中指定它朦佩。
import java.util.Date;
import java.text.DateFormat;
import java.util.Locale;//不同的國(guó)家和地區(qū)
Object myString = DateFormat.getDateInstance().format(today);
Object myString = DateFormat.getDateInstance(DateFormat.LONG).format(today);/
Object myString1 = DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA).format(today);
//DateFormat包括 FULL并思、LONG、MEDIUM 和 SHORT语稠。
如果格式化多個(gè)日期宋彼,那么獲得該格式并多次使用它是更為高效的做法,這樣系統(tǒng)就不必多次獲取有關(guān)環(huán)境語(yǔ)言和國(guó)家約定的信息了仙畦。
DateFormat df = DateFormat.getDateInstance();
for (int i = 0; i < myDate.length; ++i) {
output.println(df.format(myDate[i]) + "; "); }
java.text.SimpleDateFormat(DateFormat的直接子類)
1输涕、SimpleDateFormat 使得可以選擇任何用戶定義的日期-時(shí)間格式的模式。
但是慨畸,仍然建議通過(guò) DateFormat 中的 getTimeInstance莱坎、getDateInstance 或 getDateTimeInstance 來(lái)新的創(chuàng)建日期-時(shí)間格式化程序。每一個(gè)這樣的類方法都能夠返回一個(gè)以默認(rèn)格式模式初始化的日期/時(shí)間格式化程序寸士。
DateFormat df4 = new SimpleDateFormat("yyyy年MM月dd日 hh時(shí)mm分ss秒 EE", Locale.CHINA);
DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EEEEEE", Locale.US);
DateFormat df6 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df7 = new SimpleDateFormat("yyyy年MM月dd日");
//將日期轉(zhuǎn)換成字符串
String date4 = df4.format(new Date());
String date5 = df5.format(new Date());
String date6 = df6.format(new Date());
String date7 = df7.format(new Date());
System.out.println(date4);
System.out.println(date5);
System.out.println(date6);
System.out.println(date7);
輸出結(jié)果
2017年09月26日 03時(shí)00分12秒 星期二
2017-09-26 03:00:12 Tuesday
2017-09-26
2017年09月26日
2檐什、還可以統(tǒng)一定義樣式
String pattern = "yyyy-MM-dd"; //定義樣式,可以復(fù)用
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(new Date());
System.out.println(date);
3弱卡、SimpleDateFormat除了格式化厢汹,還具有解析一個(gè)String變?yōu)镈ate的功能
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
Date date = simpleDateFormat.parse("2013-12-04");
java.util.Calendar
Calendar的實(shí)例是系統(tǒng)時(shí)間的抽象表示,從Calendar的實(shí)例可以知道年月日星期月份時(shí)區(qū)等信息谐宙。
Calendar類中有一個(gè)靜態(tài)方法 get(int x),通過(guò)這個(gè)方法可以獲取到相關(guān)實(shí)例的一些值(年月日星期月份等)信息烫葬。參數(shù)x是一個(gè)產(chǎn)量值,在Calendar中有定義凡蜻。
1)Calendar的星期是從周日開始的搭综,常量值為0。
2)Calendar的月份是從一月開始的划栓,常量值為0兑巾。
3)Calendar的每個(gè)月的第一天值為1。
java.util.GregorianCalendar(Calendar的直接子類)
GregorianCalendar 是 Calendar 的一個(gè)具體子類忠荞,提供了世界上大多數(shù)國(guó)家使用的標(biāo)準(zhǔn)日歷系統(tǒng)蒋歌。結(jié)合Calendar抽象類使用帅掘。
舉例:
//創(chuàng)建Calendar的方式
Calendar now = new GregorianCalendar(2007, 10, 30, 15, 55, 44);
//定義日期的中文輸出格式,并輸出日期
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh時(shí)mm分ss秒 E", Locale.CHINA);
System.out.println("獲取日期中文格式化化輸出:" + df.format(now.getTime()));
System.out.println("獲取年:" + now.get(Calendar.YEAR));
System.out.println("獲取月(月份是從0開始的):" + now.get(Calendar.MONTH));
System.out.println("獲取日:" + now.get(Calendar.DAY_OF_MONTH));
System.out.println("獲取時(shí):" + now.get(Calendar.HOUR));
System.out.println("獲取分:" + now.get(Calendar.MINUTE));
System.out.println("獲取秒:" + now.get(Calendar.SECOND));
System.out.println("獲取上午、下午:" + now.get(Calendar.AM_PM));
System.out.println("獲取星期數(shù)值(星期是從周日開始的):" + now.get(Calendar.DAY_OF_WEEK));
String dayOfWeek[] = {"", "日", "一", "二", "三", "四", "五", "六"};
System.out.println("now對(duì)象的星期是:" + dayOfWeek[now.get(Calendar.DAY_OF_WEEK)]);
String months[] = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};
System.out.println("now對(duì)象的月份是: " + months[now.get(Calendar.MONTH)]);
上述內(nèi)容摘自以下博客:
http://blog.csdn.net/pnet2008/article/details/17122469
http://www.cnblogs.com/talk/archive/2012/09/11/2680591.html
感謝作者的分享堂油,受益匪淺修档。