java面试题解惑系列(七)——日期和时间的处理

java面试题解惑系列(七)——日期和时间的处理

ID:39507556

大小:142.00 KB

页数:19页

时间:2019-07-04

java面试题解惑系列(七)——日期和时间的处理_第1页
java面试题解惑系列(七)——日期和时间的处理_第2页
java面试题解惑系列(七)——日期和时间的处理_第3页
java面试题解惑系列(七)——日期和时间的处理_第4页
java面试题解惑系列(七)——日期和时间的处理_第5页
资源描述:

《java面试题解惑系列(七)——日期和时间的处理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVA面试题解惑系列(七)——日期和时间的处理日期和时间的处理不仅在面试题中会考到,在实际项目开发中也是我们经常需要处理的问题,似乎没有哪个项目可以避开它们,我们常常在处理用户的出生年月日、注册日期,订单的创建时间等属性时用到,由此可见其重要性。java.util.Date类提到日期和时间,我想大家最先想到应该是java.util.Date类吧。Date类可以精确到毫秒数,这个毫秒数是相对于格林威治标准时间“1970-01-0100:00:00.000GMT”的差值。那么,什么是格林威治标准时间呢?要回答这个问题,

2、我们需要先来了解一下世界时间标准方面的知识。世界时间标准主要有UTC,即CoordinatedUniversalTime(中文名译作世界协调时间、世界统一时间或世界标准时间),以及GMT,即GreenwichMeanTime(中文名译作格林威治标准时间或格林威治平均时间)两种。严格来讲,UTC比GMT更加精确一些,不过它们的差值不会超过0.9秒,如果超过了,将会为UTC增加闰秒以与GMT,也就是地球自转周期保持一致。所以在日常使用中,我们可以把UTC和GMT一样看待。日期和时间的表示是与我们所处的时区相关联的,如果我

3、们不指定时区,那么它们将以系统默认的时区来显示。我们先来看看如何创建日期对象。Date类有很多个构造器方法,大部分已经不被赞成使用了(Deprecated),不过还剩下两个可以使用的:Java代码1.public Date() {  2.    this(System.currentTimeMillis());  3.}  4.  5.public Date(long date) {  6.    //other code  7.}  publicDate(){this(System.currentTimeMilli

4、s());}publicDate(longdate){//othercode}第一个是无参构造器,使用系统当前时间的毫秒数来创建Date对象,它调用了java.lang.System类的currentTimeMillis()来取得系统的当前时间的毫秒值。这是个本地方法,它的定义如下:Java代码1.public static native long currentTimeMillis();  publicstaticnativelongcurrentTimeMillis();第二个构造器是根据给定的毫秒数来创建一个与

5、之对应的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.print

6、ln(d);  8.    }  9.}  importjava.util.Date;publicclassDateTest{publicstaticvoidmain(String[]args){Dated=newDate();//在默认时区下输出日期和时间值System.out.println(d);}}运行结果:·TueJul2210:44:47CST2008大家应该注意到了年份前的“CST”标识,它是ChinaStandardTime的缩写,指的是中国标准时间,也就是我们常说的北京时间。它与UTC的时差是UTC

7、+8:00,就是说北京时间比世界标准时间早8个小时,如果世界标准时间是早上1点,北京时间就是早上9点。一般情况下我们不需要关心时区问题。在创建完Date对象之后,我们可以通过调用getTime()方法来获得该对象的毫秒数值,调用setTime(longtime)方法来设置它的毫秒数值,从而影响年、月、日、时、分、秒这些属性。这两个方法的定义如下:Java代码1.public long getTime() {  2.    //other code  3.}  4.  5.public void setTime(lon

8、g time) {  6.    //other code  7.}  publiclonggetTime(){//othercode}publicvoidsetTime(longtime){//othercode}既然Date对象可以表示盛相对于“1970-01-0100:00:00.000GMT”的毫秒数,我们自然可以通过这个值来比较两个日

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。