第6章时刻、日期和数字
6.1 Date类
Date a=new Date();
(1)Date类在java.util包中。
使用Date类的无参数构造方法创建的对象能够猎取本地当前时刻。
Date对象表示时刻的默认顺序是星期、月、日、小时、分、秒、年。
例如:Sat Apr 28 21:59:38 CST 2001
(2)我们可能希望按着某种适应来输出时刻,比如时刻的顺序:年月星期日或年月星期日小时分秒。
这时能够使用DataFormat的子类SimpleDateFormat来实现时期的格式化。
SimpleDateFormat有一个常用构造方法:
public SimpleDateFormat(String pattern)。
该构造方法能够用参数pattern指定的格式创建一个对象,该对象调用
format(Date date)
方法格式化时刻对象date。
需要注意的是,pattern中应当含有一些有效的字符序列。
例如:
● y或yy 表示用两位数字输出年份 yyyy表示用4位数字输出年份。
● M或MM 表示用两位数字或文本输出月份,假如想用汉字输出月份,pattern中应连续包含至少3个M,如MMM。
● d或dd 表示用两位数字输出日。
● H或HH 表示用两位数字输出小时。
● m或mm 表示用两位数字输出分。
● s或ss 表示用两位数字输出秒。
● E 表示用字符串输出星期。
在下面的例子dateformat.java中,我们用3种格式输出时刻。
(3)Java日期时刻及其格式化能够用System类的静态方法public static long currentTimeMillis()猎取系统当前时刻,那个时刻是从1970年1月1日0点到目前时刻所走过的毫秒数
(这是一个不小的数)。
另外,也能够依照currentTimeMillis()方法得到的数字,用Date的构造方法Date(long time)来创建一个Date对象。
在下面的例子6.1中,用三种格式输出时刻。
例子 6.1:(效果如图)
import java.util.Date;
import java.text.SimpleDateFormat;
class Example6_1
{
public static void main(String args[])
{
Date nowTime = new Date();
System.out.println(nowTime);
SimpleDateFormat matter1=new
SimpleDateFormat("'time':yyyy年MM月dd日E北京时刻");
System.out.println(matter1.format(nowTime));
SimpleDateFormat matter2=new SimpleDateFormat("北京时刻:yyyy年MM月dd日HH时mm分ss秒");
System.out.println(matter2.format(nowTime));
Date date1 = new Date(1000);
Date date2 = new Date(-1000);
System.out.println(matter2.format(date1));
System.out.println(matter2.format(date2));
System.out.println(new
Date(System.currentTimeMillis()));
}
}
6.2 Calendar类
(1)Calendar类在java.util包中,使用Calendar类的static 方法getlnstance()能够初始化一个日历对象,如:Calendar calendar=Calendar.getlnstance();
然后,calendar对象能够调用方法:
public final void set(int year,int month,int date)
public final void set(int year,int month,int date,int hour,int minute)
public final void set(int year,int month,iht date,int hour;int minute,int second)
(2)将日历翻到任何一个时刻,当参数year取负数时表示公元前
calendar对象调用方法:
public int get(int field)
(3)能够猎取有关年份、月份、小时、星期等信息,参数field 的有效值由Calendar的静态常量指定,例如:
calendar.get(Calendar.MONTH);
返回一个整数,假如该整数是0,表示当前日历是在一月;该整数是1,表示当前日历是在二月等。
(4)日历对象调用:
public long getTimelnMillis()
能够将时刻表示为毫秒。
下面的例子rili.java使用Calendar来表示时刻。
并计罢了2003年和1962年之间相隔的天数。
注意周一是星期0下面的例子monthli输出2004年1月的日历页。