日期和时间的计算在应用程序设计中经常要使用到。Java语言表示某个日期和时间时用特定的时刻来表示,这特定的时间是个长整型数,单位为毫秒,它是从格林尼治标准时间1970年1月1日的00:00:00.000作为起点进行计算(格里高利历),是个以毫秒为单位的时间偏移量。对于北京时间,起点为1970年1月1日08:00:00.000。
常用的关于日期时间应用的类有Calendar、Date和SimpleDateFormat等几种。其中Cal-endar、Date类属于Java的util包,SimpleDateFormat类属于Java的text包。
先从下面的例子了解一下Java语言如何进行日期时间的表示。
【例8-19】日期时间类的基本使用方法。
程序运行结果:
日期时间的基本表示方法,可以是以毫秒为单位的长整型,也可以是默认的FULL完整日期时间格式。
1.Calendar类
Calendar类是一个抽象类,由于Date类中的许多方法已经过时,所以对日期时间的操作多数使用Calendar类。它为特定的时刻与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了方法,并为操作日历字段提供了操作方法,比如如何计算下一星期的日期等。
Calendar类常用的类常量(静态常量)有:
Calendar类的常用的方法有:
【例8-20】Calendar类的应用:获取当前日期和时间。
程序运行结果:
今天是2010年1月22日
时间是14点23分19秒
【例8-21】Calendar类的应用:设定日期和时间,计算是星期几。
程序运行结果:
2000年10月1日是 星期日
2.Date类
Date类用于表示日期和时间,其方法可以把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和分析日期字符串。但Date类的这些方法不易于实现国际化,从JDK1.1开始,Date中的相应方法已过时或废弃。日期和时间建议使用Calendar类实现日期和时间字段之间的转换,并使用DateFormat类来格式化和分析日期字符串。
创建Date对象可以用以下两种方法:
或
【例8-22】使用Date类进行日期时间处理。
程序运行结果:
今天是2010年1月22日
时间是14点42分44秒
3.日期格式定义类SimpleDateFormat
SimpleDateFormat类,被用于任意设定日期和时间输出的格式。日期和时间格式由日期和时间格式字符指定。这些格式字符有:
Y:年
M:年中的月份(www.daowen.com)
d:月份中的天数
D:年中的天数
E:星期中的天数
F:月份中的星期数
a:Am/pm标记
H:一天中的小时数(0~23)
h:am/pm中的小时数(1~12)
m:小时中的分钟数
s:分钟中的秒数
例如,创建一个中文的日期表示格式对象sf1:
【例8-23】日期格式定义类SimpleDateFormat的使用。
程序运行结果:
现在是:2010-01-2202:54:07
今天是:2010年01月22日 星期五
【例8-24】计算日期的一个例子。
程序运行结果:
生日是:2000年10月01日 星期日
今天是:2010年01月22日 星期五
年龄是:10岁
出生了共:3400天
1年零2个月又3天后是:2011年03月25日 星期五
100天前是:2009年10月14日 星期三
【例8-25】一个显示当年月历的程序。
程序运行结果:
4.获取系统当前日期时间System.currentTimeMillis()
除了Calendar类和Date类可以获取系统当前的日期时间外,System类中的currentTime-Millis()方法也可以获取系统当前的日期时间,单位是毫秒。
例如:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。