java.util 包提供了 Date 类来封装当前的日期和时间
Date( ) 这个构造函数使用当前日期和时间来初始化对象
Date(long millisec) 这个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数
Date对象的基本方法
toString( ) //把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)
after(Date date) //若当调用此方法的Date对象在指定日期之后返回true,否则返回false
before(Date date) //若当调用此方法的Date对象在指定日期之前返回true,否则返回false
clone( ) //返回此对象的副本
compareTo(Date date) //比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
equals(Object date) //当调用此方法的Date对象和指定日期相等时候返回true,否则返回false
getTime( ) //返回自1970年1月1日00:00:00 GMT 以来此 Date 对象表示的毫秒数
setTime(long time) //用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期
hashCode( ) //返回此对象的哈希码值
1.获取当前日期时间
import java.text.SimpleDateFormat;
import java.util.*;
public class JavaDate {
public static void main(String args[]){
Date currentDate = new Date();
System.out.println(currentDate.toString());
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(ft.format(currentDate));
}
}
2.使用printf格式化日期
c:包括全部日期和时间信息 //星期六 十月 27 14:21:20 CST 2007
F:"年-月-日"格式 //2007-10-27
D:"月/日/年"格式 //10/27/07
r:"HH:MM:SS PM"格式(12时制)//02:25:51 下午
T:"HH:MM:SS"格式(24时制) //14:28:16
R:"HH:MM"格式(24时制)//14:28
import java.text.SimpleDateFormat;
import java.util.*;
public class JavaDate {
public static void main(String args[]){
Date currentDate = new Date();
System.out.printf("%tc%n", currentDate);
System.out.printf("%tF%n", currentDate);
System.out.printf("%tD%n", currentDate);
System.out.printf("%tr%n", currentDate);
System.out.printf("%tT%n", currentDate);
System.out.printf("%tR%n", currentDate);
}
}
3.sleep()方法
public class JavaDate {
public static void main(String args[]){
try {
System.out.println("哈哈");
Thread.sleep(1000*5); //休眠5秒
System.out.println("呵呵");
} catch (Exception e) {
System.out.println("异常");
}
}
}
4.Calendar类
Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
4.1Calendar类对象字段类型
Calendar.YEAR 年份
Calendar.MONTH 月份
Calendar.DATE 日期
Calendar.DAY_OF_MONTH 日期,和上面的字段意义完全相同
Calendar.HOUR 12小时制的小时
Calendar.HOUR_OF_DAY 24小时制的小时
Calendar.MINUTE 分钟
Calendar.SECOND 秒
Calendar.DAY_OF_WEEK 星期几
4.2Calendar类对象信息的设置
Calendar c1 = Calendar.getInstance();
set():
c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12
c1.set(Calendar.DATE,10);//把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算
add():
c1.add(Calendar.DATE, 10); //把c1对象的日期加上10,也就是c1 10天后的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, -10); //把c1对象的日期减去10,也就是c1 10天前的日期,其它所有的数值会被重新计算
public class JavaDate {
public static void main(String args[]){
Calendar defaut = Calendar.getInstance();
defaut.set(Calendar.DATE, 10);
System.out.println(defaut.get(Calendar.DATE));
defaut.add(Calendar.DATE, 30);
System.out.println(defaut.get(Calendar.DATE));
System.out.println(defaut.get(Calendar.MONTH));
}
}
5.GregorianCalendar类
Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个子类,提供了世界上大多数国家/地区使用的标准日历系统
注意:月份是从0开始计数的
import java.util.*;
public class JavaDate {
public static void main(String args[]){
String months[] = {
"Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec"};
GregorianCalendar gCl = new GregorianCalendar();
System.out.print("Date: ");
System.out.print(months[gCl.get(Calendar.MONTH)]);
System.out.print(" " + gCl.get(Calendar.DATE) + " ");
System.out.println(gCl.get(Calendar.YEAR));
System.out.print("Time: ");
System.out.print(gCl.get(Calendar.HOUR) + ":");
System.out.print(gCl.get(Calendar.MINUTE) + ":");
System.out.println(gCl.get(Calendar.SECOND));
// 测试当前年份是否为闰年
if(gCl.isLeapYear(gCl.get(Calendar.YEAR))) {
System.out.println("当前年份是闰年");
} else {
System.out.println("当前年份不是闰年");
}
}
}