- 1
- 0
- 约2.96万字
- 约 19页
- 2019-10-21 发布于中国
- 举报
JAVA面试题解惑系列(七) —— 日期和时间的处理
日期和时间的处理不仅在面试题中会考到, 在实际项目开发中也是我们经常需要
处理的问题, 似乎没有哪个项目可以避开它们, 我们常常在处理用户的出生年月
日、注册日期,订单的创建时间等属性时用到,由此可见其重要性。
java.util.Date 类
提到日期和时间,我想大家最先想到应该是 java.util.Date 类吧。 Date 类可以
精确到毫秒数,这个毫秒数是相对于格林威治标准时间“ 1970-01-01
00:00:00.000 GMT”的差值。那么,什么是格林威治标准时间呢?要回答这个问
题,我们需要先来了解一下世界时间标准方面的知识。
世界时间标准主要有 UTC,即 Coordinated Universal Time (中文名译作世界协
调时间、世界统一时间或世界标准时间),以及 GMT,即 Greenwich Mean Time
(中文名译作格林威治标准时间或格林威治平均时间)两种。严格来讲, UTC比
GMT更加精确一些,不过它们的差值不会超过 0.9 秒,如果超过了,将会为 UTC
增加闰秒以与 GMT,也就是地球自转周期保持一致。所以在日常使用中,我们可
以把 UTC和 GMT一样看待。
日期和时间的表示是与我们所处的时区相关联的, 如果我们不指定时区, 那么它
们将以系统默认的时区来显示。我们先来看看如何创建日期对象。 Date 类有很
多个构造器方法,大部分已经不被赞成使用了( Deprecated ),不过还剩下两个
可以使用的:
Java 代码
1. public Date() {
2. this(System.currentTimeMillis());
3. }
4.
5. public Date(long date) {
6. //other code
7. }
第一个是无参构造器,使用系统当前时间的毫秒数来创建 Date 对象,它调用了
java.lang.System 类的 currentTimeMillis() 来取得系统的当前时间的毫秒值。
这是个本地方法,它的定义如下:
Java 代码
1. public static native long currentTimeMillis();
第二个构造器是根据给定的毫秒数来创建一个与之对应的 Date 对象,这个毫秒
数决定了被创建对象的年、月、日、时、分、秒属性的值。
我们来看看日期和时间在默认时区下的显示效果:
Java 代码
1. import java.util.Date;
2.
3. public class DateTest {
4. public static void main(String[] args) {
5. Date d = new Date();
6. // 在默认时区下输出日期和时间值
7. System.out.println(d);
8. }
9. }
运行结果:
Tue Jul 22 10:44:47 CST 2008
大家应该注意到了年份前的“ CST”标识,它是 China Standard Time 的缩写,
指的是中国标准时间, 也就是我
原创力文档

文档评论(0)