Date型引用数据类型
Java中处理日期的类主要有Date、Calendar和DateFormat三个,在JDK中它们对应的包的位置和相关的派生类如下所示:
Date:具体类java.util.Date -----用于输出当前时间。
Calendar:抽象类java.text.DateFormat,它派生的一个子类为java.text.SimpleDateFormat ----用于提取当前的年,月,日等信息。
DateFormat:抽象类java.util.Calendar,它派生的一个子类为java.util.GregorianCalendar----用于按照自己的格式进行输出。
观察如下程序:
packagecom.yunhe.study;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
public classCalendarQuestion {
public static void main (String[] args){
Date date=new Date ();
System.out.println(date);//输出date
Calendarcal=Calendar.getInstance();//注意命名方法与常见的不用
System.out.println(cal.get(Calendar.YEAR));//输出年份
System.out.println(cal.get(Calendar.MONTH));//系统默认从0月算起
System.out.println(cal.get(Calendar.MONTH)+1);
System.out.println(cal.get(Calendar.DAY_OF_MONTH));//DAY_OF_MONTH代表本月的第几天
System.out.println(cal.get(Calendar.HOUR));//代表输出小时
System.out.println(cal.get(Calendar.MINUTE));//代表输出分钟数
System.out.println(cal.get(Calendar.SECOND));//代表输出秒数
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//代表周几,系统默认从周日为第一天
SimpleDateFormat sdf=newSimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
//简单的时间格式,new一块内存用于存放字符串,并将地址指向sdf
//将Date型变为String型变量进行输出
String str = sdf.format(date);//da用上边规定的格式format类型sdf转化后赋给str
System.out.println(str);
sdf=new SimpleDateFormat("yyyy-MM-dd");
//将String型转化为Date型变量进行输出
String my="2013-03-12";//格式必须一致
try {
date=sdf.parse(my);
System.out.println(date);//选中该部分,点击右键sourround with---try/catch Block
} catch (ParseException e) {
// TODO Auto-generated catchblock
e.printStackTrace();
}
System.out.println(date.getTime());
//将Date型转化为String型进行输出
//getTime()使其按毫秒进行输出,可用于订单生成等
str = sdf.format(date.getTime());//把long型转化为String型
System.out.println(str);
sdf=new SimpleDateFormat("yyyy-MM-dd");//String转化为Data
try {
date=sdf.parse(str);
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catchblock
e.printStackTrace();
}
}
}
1. 当用于提取当前时间时:
Data da=new Date();
System.out.println(da);
2. 当用于提取当前年时:
Calendarcal=Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
注意月份从0算起,星期日为1。
3. 当用于按规定格式提取时间时(Date-String):
SimpleDateFormatsdf=new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
String str =sdf.format(date);
System.out.println(str);
4. 当用于提取当前时间时(String-Date):---选中date=sdf.parse(my);
System.out.println(date);点击右键sourround with---try/catch Block.
sdf=newSimpleDateFormat ("yyyy-MM-dd");
Stringmy="2013-03-12";
try {date=sdf.parse(my);
System.out.println(date);
} catch(ParseException e) {// TODO Auto-generated catch block
e.printStackTrace();}
5. 当用于提取当前时间的毫秒形式(Date-long):
System.out.println(date.getTime());
6. 用于将毫秒转化为String(long-String):
str =sdf.format(date.getTime());
System.out.println(str);