java常用类--Date类和Calendar类

180 阅读3分钟

构造方法

1、Date()

构造一个 Date 对象并对其进行初始化以反映当前时间

Date date = new Date();

Date(long date)

构造一个 Date 对象,并根据相对于 GMT 1970 年 1 月 1 日 00:00:00 的毫秒数对其进行初始化

Date date = new Date(290192019);

常用方法

long getTime( )

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

Date date = new Date();
System.out.println(date.getTime());

void setTime(long time)

用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。

String toString( )

把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

int compareTo(Date date)

比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。

日期比较

1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2、使用方法 before(),after() 和 equals()。

例如,一个月的12号比18号早
new Date(99, 2, 12).before(new Date (99, 2, 18));
返回true

3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

格式化日期

SimpleDateFormat进行日期格式化

实例:
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
System.out.println(ft.format(dNow));

printf输出格式化日期

实例:
Date date = new Date();

//c的使用  
//全部日期和时间信息:星期一 九月 10 10:43:36 CST 2012
System.out.printf("全部日期和时间信息:%tc",date);

//f的使用  
//年-月-日格式:2012-09-10
System.out.printf("年-月-日格式:%tF",date);  

//d的使用  
//月/日/年格式:09/10/12  
System.out.printf("月/日/年格式:%tD",date);  

//r的使用 
//HH:MM:SS PM格式(12时制):10:43:36 上午  
System.out.printf("HH:MM:SS PM格式(12时制):%tr",date);  
    
//t的使用  
//HH:MM:SS格式(24时制):10:43:36  
System.out.printf("HH:MM:SS格式(24时制):%tT",date);  

//R的使用  
//HH:MM格式(24时制):10:43  
System.out.printf("HH:MM格式(24时制):%tR",date);  

解析字符串为时间

SimpleDateFormat 类有一些附加的方法,特别是parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串

实例:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 
String input = "1818-11-11"; 

System.out.print(input + " Parses as "); 
Date t; 
t = ft.parse(input); 
System.out.println(t); 

//1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818

休眠sleep

实例:
System.out.println(new Date( )); 
Thread.sleep(1000*3);   // 休眠3秒
System.out.println(new Date( ));

时间差

实例:
long start = System.currentTimeMillis( );
Thread.sleep(10000);
long end = System.currentTimeMillis( );
long diff = end - start;
System.out.println(diff);

Calendar

创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();

创建一个特定时间的Calendar对象

Calendar c1 = Calendar.getInstance();

c1.set(2009, 6, 12);

set设置

实例:
Calendar c1 = Calendar.getInstance();
public final void set(int year,int month,int date){...}
c1.set(2009, 6, 12);
//把Calendar对象c1的年月日分别设这为:2009、6、12

public void set(int field,int value)
c1.set(Calendar.DATE,10);
c1.set(Calendar.YEAR,2008);

add设置

实例:
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.DATE, 10);//日期加10天
c1.add(Calendar.DATE, -10);//日期减10天