Date:
Date類位于java.util包下,由于存在千年蟲問題,現在Date的大部分方法都已經不再使用。目前使用的主要有long getTime()方法擷取給定Date時間對應的毫秒值以及Date getTime(long sec)方法根據給定時間設定為Date對象或者直接使用構造器new Date(long sec)
public class DateDemo {
public static void main(String[] args) {
/**
* 擷取目前時間
*/
Date date = new Date();
System.out.println(date);
/**
* 擷取目前時間的毫秒值
*/
long sec = date.getTime();
System.out.println(sec);
/**
* 通過一個毫秒值讓Date去描述這個對象
*/
date.setTime(sec);
System.out.println(date);
}
}
SimpleDateFormat
SimpleDateFormat類位于java.text包下,是java.txt.DateFormat的子
java.lang.Object
--java.text.Format
--java.text.DateFormat
--java.text.SimpleDateFormat
|
經常使用SimpleDateFormat類下的format(Date date)方法對已知的Date對象進行格式化。
/**
* 将Date對象格式化
* @author Pursuit.
* @version 2013-11-22 上午8:42:18
*/
public class SimpleDateFormatFormat {
public static void main(String[] args) {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 kk:mm:ss E");
//對應格式 2013年11月22日 08:47:14 星期五
String str = sdf.format(now);
System.out.println(str);
}
}
經常使用SimpleDateFormat類下的Date parse(String str)方法對已知的String對象進行轉換。
/**
* 使用SimpleDateFormat
* 進行字元串按照指定格式解析為Date對象
* @author Administrator
*
*/
public class SimpleDateFormatDemo2 {
public static void main(String[] args) throws ParseException {
//定義一個日期的字元串
String str = "2013/12/30 15:22:45";
/**
* 2013/12/30 15:22:45"
* yyyy/MM/dd HH:mm:ss
*/
SimpleDateFormat sdf =
new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
/**
* Date parse(String str)
* 将給定的字元串按照給定的格式解析成Date對象
*/
Date date = sdf.parse(str);
System.out.println(date);
}
}
Calender:
Calendar位于java.util包下,目前使用較多的日期類。
public class CalendarDemo {
public static void main(String[] args) {
/**
* 根據目前系統地區建立Calendar執行個體
* 預設建立出來的Calendar描述的是目前系統時間
* java.util.Calendar
*/
Calendar calendar = Calendar.getInstance();
// System.out.println(calendar);
/**
* Date getTime()
* 以Date形式描述目前Calendar所描述的時間
*/
Date date = calendar.getTime();
/**
* void setTime(Date date)
* 讓目前Calendar描述給定的Date對象所描述的時間
*/ calendar.setTime(new Date());
System.out.println(date);
}
}
設定和擷取時間
/**
* 設定和擷取時間
* @author Administrator
*
*/
public class CalendarDemo2 {
public static void main(String[] args) {
//建立目前系統時間的月曆類
Calendar calendar = Calendar.getInstance();
//輸出時間
System.out.println(calendar.getTime());
/**
* 将目前時間中的年設定為1995
*/
calendar.set(Calendar.YEAR, 1995);
//輸出時間
System.out.println(calendar.getTime());
/**
* 将目前時間中的月設定為5月
* 月在Calendar中有對應的常量
* 若寫數字,0表示1月,以此類推
*/
calendar.set(Calendar.MONTH, 4);
//輸出時間
System.out.println(calendar.getTime());
/**
* 将目前時間中的日設定為5号
* Calendar.DATE 表示的是月中的某一天
* Calendar.DAY_OF_MONTH 和DATE常量一摸一樣
*
* Calendar.DAY_OF_WEEK 表示星期中的某一天
*
* Calendar.DAY_OF_YEAR 表示年中的某一天
*
*/
calendar.set(Calendar.DATE, 5);
//輸出時間
System.out.println(calendar.getTime());
/**
* Calendar.HOUR 表示12小時制的小時 0-11
* Calendar.HOUR_OF_DAY 表示24小時制的小時
*
*/
calendar.set(Calendar.HOUR, 4);
//輸出時間
System.out.println(calendar.getTime());
/**
* 擷取目前Calendar中的某一個時間機關的值
*/
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("現在是" + year + "年");
System.out.println(month + 1 + "月");
System.out.println(day + "日");
/**
* 對于星期而言,1表示星期日,2表示星期一,以此類推
*/
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(
"星期" +
( dayOfWeek==1 ? 7 : dayOfWeek-1 )
);
/**
* 檢視1995年的5月5号是一年中的第幾天
*/
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println("是一年中的第"+dayOfYear+"天");
}
}
設定時間值溢出時系統會自動增加至下一月、下一年
import java.util.Calendar;
/**
* Calendar設定時間的溢出問題
* @author Administrator
*
*/
public class CalendarDemo3 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
/**
* 當設定的值超過了該值允許的最大值時,會将相應的時間
* 機關進行進位,這裡就會對月進行進位
*/
calendar.set(Calendar.DAY_OF_MONTH, 32);
//Mon Dec 02 08:55:03 CST 2013
System.out.println(calendar.getTime());
}
}
總結
String到Date以及Date到String使用的是SimpleDateFormat類
Date到Calendar以及Calendar到Date使用的是Calendar下的setTime(Date date)以及Clendar下的Date getTime()方法