一 :Date 类
![]()

![]()
![]()
看源码:
public Date ()
{
this(System.currentTimeMillis());
}
输出当前时间
代码:
public class DateDemo1 {
public static void main(String[]
args) {
System. out.println("当前时间" +new Date());
}
}
结果:
当前时间Thu Nov 21 19:04:02 CST 2013
二: Calendar类
看源码:
public abstract class Calendar implements Serializable,
Cloneable, Comparable<Calendar> {
}
看见Calendar是一个抽象类,那么抽象类就必须要子类来继承实现
我们看源码的时候,看见Calendar有许多常量
下面就是一些常量的解释:
除了看见常量,还有一些方法
下面我们就来实现一些方法:
1. 在源码中有这样一段代码:
public static Calendar getInstance()
{
Calendar cal = createCalendar(TimeZone.getDefaultRef(),
Locale.getDefault(Locale.Category.FORMAT));
cal. sharedZone = true ;
return cal;
}
我们在看看 createCalendar这个是个什么?
private static Calendar createCalendar(TimeZone
zone,
Locale aLocale)
{
Calendar cal = null;
String caltype = aLocale.getUnicodeLocaleType("ca" );
if (caltype
== null) {
// Calendar type is not specified.
// If the specified locale is a Thai locale,
// returns a BuddhistCalendar instance.
if ("th" .equals(aLocale.getLanguage())
&& ("TH".equals(aLocale.getCountry())))
{
cal = new BuddhistCalendar(zone,
aLocale);
} else {
cal = new GregorianCalendar(zone,
aLocale);
}
} else if (caltype.equals("japanese"))
{
cal = new JapaneseImperialCalendar(zone,
aLocale);
} else if (caltype.equals("buddhist"))
{
cal = new BuddhistCalendar(zone,
aLocale);
} else {
// Unsupported calendar type.
// Use Gregorian calendar as a fallback.
cal = new GregorianCalendar(zone,
aLocale);
}
return cal;
}
我看到这个方法就是来用子类实例化父类的
2. 方法代码如下:
public class DateDemo1 {
public static void main(String[]
args) {
System. out.println("当前时间" +new Date());
Calendar calendar=Calendar.getInstance();
System. out.println(calendar.getTime());
}
}
结果:
当前时间Thu Nov 21 19:14:49 CST 2013
Thu Nov 21 19:14:50 CST 2013
意思就是Calendar类的getTime就是取得当前的时间
3.取得当前的系统时间
public class DateDemo2
{
public static void main(String[]
args) {
Calendar calendar= null;//声明对象
calendar= new GregorianCalendar();//子类为其实例化
System. out.println(calendar.get(Calendar.YEAR)+"年"+
calendar.get(Calendar. MONTH)+"月" +calendar.get(Calendar.DAY_OF_MONTH)+ "日"+
calendar.get(Calendar. HOUR_OF_DAY)+"时" +calendar.get(Calendar.MINUTE)+ "分"+
calendar.get(Calendar. SECOND)+"秒" +calendar.get(Calendar.MILLISECOND)+ "毫秒");
}
}
结果:
2013年10月21日19时24分18秒482毫秒
看到代码是不是很长,Date类还有其他类来格式化它
三.DateFormat类
此类的作用就是用来格式化时间的
看源码:
public abstract class DateFormat extends Format
{
public final static DateFormat getInstance ()
{
return getDateTimeInstance( SHORT, SHORT );
}
下面是它的常用方法
实现代码:
public class DateDemo3 {
public static void main(String[]
args) {
DateFormat dateFormat= null;
DateFormat dateFormat2= null;
dateFormat=DateFormat. getDateInstance();//获取时间对象
System. out.println("日期" +dateFormat);
dateFormat2=DateFormat. getDateTimeInstance();//获取日期时间对象
System. out.println("日期-时间" +dateFormat2);
System. out.println("格式化日期" +dateFormat.format(new Date()));
System. out.println("格式化日期时间" +dateFormat2.format(new Date()));
}
}
结果:
日期java.text.SimpleDateFormat@ef7951d7
日期-时间java.text.SimpleDateFormat@d9235b7f
格式化日期2013-11-21
格式化日期时间2013-11-21 19:38:52
如果你还觉得不是中文的,下面的代码能满足你:
public class DateDemo4 {
public static void main(String[]
args) {
DateFormat dateFormat= null;
DateFormat dateFormat2= null;
//取得日期,并设置格式
dateFormat=DateFormat. getDateInstance(DateFormat.YEAR_FIELD, new Locale("zh" ,"CN" ));
//取得日期时间,并设置格式
dateFormat2=DateFormat. getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat. ERA_FIELD,new Locale("zh" ,"CN" ));
System. out.println("格式化的日期" +dateFormat.format(new Date()));
System. out.println("格式化的日期时间" +dateFormat2.format(new Date()));
}
}
结果:
格式化的日期2013年11月21日
格式化的日期时间2013年11月21日 下午07时44分40秒 CST
如果你还不满意,那就只有用DateFormat的子类SimpleDateFormat
四.SimpleDateFormat类
例子:
public class DateDemo5 {
public static void main(String[]
args) {
String str= "2013-11-21 19:51:30.345" ;//定义日期字符串
//定义时间日期模板1
String pat1= "yyyy-MM-dd HH:mm:ss.SSS" ;
String pat2= "yyyy年MM月dd日HH时mm分ss秒SSS毫秒" ;
SimpleDateFormat simpleDateFormat= new SimpleDateFormat(pat1);//实例化模板
SimpleDateFormat simpleDateFormat2= new SimpleDateFormat(pat2);
Date d= null ;
try {
d= simpleDateFormat.parse(str); //将字符串给的时间提取出来
} catch (ParseException
e) {
// TODO Auto-generated
catch block
e.printStackTrace();
}
System. out .println(simpleDateFormat2.format(d));//将日期变为新格式
}
}
结果:
2013年11月21日19时51分30秒345毫秒
补充:SimpleDateFormat类常常用来提取String类的时间