java.util包提供了Date类来封装当前的日期和时间,Date类提供两个构造函数来实例化Date对象.第一个构造函数使用当前日期和时间来初始化对象.
Date(),第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数,
Date(long milliser)
Date对象创建以后,可以调用下面的方法,
boolean after(Date date)
若当调用此方法的Date对象在指定日期之后返回true,否则返回false.
boolean before(Date date)
若当调用此方法的Date对象在指定日期之前返回true,否则返回false.
Object clone(),返回此对象的副本,
int compareTo(Date date)
比较当调用此方法的Date对象和指定日期,两者相等时候返回0,调用对象在指定日期之前
则返回负数,调用对象在指定日期之后则返回正数.
int compareTo(Object obj)
若obj是Date类型则操作等同于compareTo(Date),否则它抛出ClassCastException.
boolean equals(Object date)
当调用此方法的Date对象和指定日期相等时候返回true,否则返回false.
long getTime(),返回自1970年1月1日00:00:00 GMT以来此Date对象表示的毫秒数,
int hashCode(),
返回此对象的哈希码值,
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,Web,Thu,Fri,Sat)
获取当前日期时候,
java中获取当前日期和时间很简单,使用Date对象的toString()方法来打印当前日期和时候,
public class DateDemo{ public static void main(String args[]){ //初始化Date对象 Date date=new Date(); //使用toString() 函数显示日期时间 System.out.println(date.toString()); } }
日期比较,
java使用以下三种方法来比较两个日期: 使用getTime()方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值. 使用方法before(),after()和equals(),例如, 使用compareTo()方法,它是由Comparable接口定义的,Date类实现了这个接口。 使用simpleDateFormat格式化日期, SimpleDateFormat是一个以语言环境敏感的方式格式化和分析日期的类, SimpleDateFormat允许你选择任何用户自定义日期时间格式化运行, import java.util.*; import java.text.*; public class DateDemo{ public static void main(String args[]){ Date dNow=new Date(); SimpleDateFormat ft=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println("时间:"+ft.format(dNow)); } }
日期和时间的格式化编码,
G,纪元标记AD,
y,四位年份,2001,
M,月份,July or 07,
d,一个月的日期,10,
h,A.M/P.M(1-12)格式小时12
H,一天中的小时(0-23),22
m,分钟数,30,
s,秒数,55
S,毫秒数,234,
E,星期几,Tuesday.
D,一年中的日子,360,
F,一个月中第几周的周几,2(second Web in July)
w,一年中第几周,40,
W,一月中第几周,1
a,A.M/P.M标记,PM
k,一天中的小时(1--24) 24,
K,AM/PM(0-11)格式小时,10
z,时区,
',文字定界符,",单引号.
使用printf格式化日期:
printf方法可以很轻松地格式化时间和日期,使用两个字母格式,
它以%t开头并且以下面表格中的一个字母结尾,
c,包括全部日期和时间信息,F,"年-月-日"格式,
D,"月/日/年"格式,r,"HH:MM:SS PM"格式(12时制)
T,"HH:MM:SS"格式(24时制),R,"HH:MM"格式(24时制)
解析字符串为时间,
SimpleDateFormat类有一些附加的方法,特别是parse(),它试图按照给定的
SimpleDateFormat对象的格式化存储来解析字符串,
java休眠(sleep)
sleep()使当前线程进入停滞状态(阻塞当前线程),让出cpu的使用,
目的是不让当前线程独自霸占该进程所获的cpu资源,以留一定时间给他线程执行的机会 ,
import java.util.*; public class SleepDemo{ public static void main(String args[]){ try{ System.out.println(new Date()+"\n"); Thread.sleep(1000*5); System.out.println(new Date()+"\n"); }catch(Exception e){ System.out.println("Got an exception!"); } } } 测量时间, import java.util.*; public class DiffDemo{ public static void main(String args[]){ try{ long start=System.currentTimeMillis(); System.out.println(new Date()+"\n"); Thread.sleep(5*10); System.out.println(new Date()+"\n"); long end=System.currentTimeMillis(); long diff=end-start; System.out.println("Difference is:"+diff); }catch(Exception e){ System.out.println("Got an exception!"); } } }
Calendar类,
Calendar类是一个抽象类,
创建一个代表系统当前日期的Calendar对象,
Calendar c=Calendar.getInstance();//默认是当前日期.
创建一个指定日期的Calendar对象,
使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,
calendar c1=Calendar.getInstance();
c1.set(2002,3-1,12);
Calendar类对象字段类型,
Calendar.YEAR 年份
Calendar.MONTH ,月份
Calendar.DAY_OF_MONTH, 日期,和上面的字段,
Calendar.HOUR,12小时制的小时
Calendar.HOUR_OF_DAY 24小时制的小时
Calendar.MINUTE 分钟,
Calendar.SECOND 秒
Calendar.DAY_OF_WEEK 星期几
Calendar类对象信息的设置,
Calendar c1=Calendar.getInstance();
public final void set(int year,int month,int date)
c1.set(2009,6-1,12);
利用字段类型设置
如果只设定某个字段,
public void set(int field,int value)
把c1对象代表的日期设置为10号,
把c1对象代表的年份设置为2008年,其他的所有数值会被重新计算
c1.set(Calendar.YEAR,2000);
Add设置,
Calendar c1=Calendar.getInstance();
把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其他所有的数值会被重新计算
把c1对象的日期减去10,也就是c1也就是表示为10天前的日期,其它所有的数值会被重新计算,
c1.add(Calendar.DATE,-10);