资源描述:
《java面试题七-时间和日期.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、日期和时间的处理不仅在面试题中会考到,在实际项目开发中也是我们经常需要处理的问题,似乎没有哪个项目可以避开它们,我们常常在处理用户的出生年月日、注册日期,订单的创建时间等属性时用到,由此可见其重要性。 2a%j:{1g9N"i#Pjava.util.Date类 0t ]:I+}"j8A#d-e$Q提到日期和时间,我想大家最先想到应该是java.util.Date类吧。Date类可以精确到毫秒数,这个毫秒数是相对于格林威治标准时间“1970-01-0100:00:00.000GMT”的差值。那么,什么是格林威
2、治标准时间呢?要回答这个问题,我们需要先来了解一下世界时间标准方面的知识。 $d$h0E$B*d(Z2N/:r:k世界时间标准主要有UTC,即CoordinatedUniversalTime(中文名译作世界协调时间、世界统一时间或世界标准时间),以及GMT,即GreenwichMeanTime(中文名译作格林威治标准时间或格林威治平均时间)两种。严格来讲,UTC比GMT更加精确一些,不过它们的差值不会超过0.9秒,如果超过了,将会为UTC增加闰秒以与GMT,也就是地球自转周期保持一致。所以在日常使用中,我们
3、可以把UTC和GMT一样看待。 '`$D3k#R0R$G$O1~日期和时间的表示是与我们所处的时区相关联的,如果我们不指定时区,那么它们将以系统默认的时区来显示。我们先来看看如何创建日期对象。Date类有很多个构造器方法,大部分已经不被赞成使用了(Deprecated),不过还剩下两个可以使用的: .r%B1H8z,{*E.PJava代码 publicDate(){ +?+w,f,g,A&h1V%}#y this(System.currentTimeMillis()); 1a6_4y#F-?&d:E!n
4、%d5f} #[9w/O3e,"o:A#H )i+u+v*n7`/r)MpublicDate(longdate){ '~,u!h+P F G'C //othercode } 9]6a#w6E%b4B;H/g*upublicDate(){ this(System.currentTimeMillis());}0d-^"I7V.q3c-H&~'y1t"v$D ZpublicDate(longdate){ //othercode},O'C%p$D%[!M5},{;}"F.@&m-B4第一个是
5、无参构造器,使用系统当前时间的毫秒数来创建Date对象,它调用了java.lang.System类的currentTimeMillis()来取得系统的当前时间的毫秒值。这是个本地方法,它的定义如下: +B3z3z4y(l)zJava代码 0Z/};[#@!]8
6、publicstaticnativelongcurrentTimeMillis(); )E;O D3T-H2K U0tpublicstaticnativelongcurrentTimeMillis();#A-Q-y1I4y*t3A5W第二个构造器
7、是根据给定的毫秒数来创建一个与之对应的Date对象,这个毫秒数决定了被创建对象的年、月、日、时、分、秒属性的值。 ,w*}4^&Z `:q我们来看看日期和时间在默认时区下的显示效果: Java代码 7w8Z6b/Z2m6[importjava.util.Date; publicclassDateTest{ publicstaticvoidmain(String[]args){ )?9t+@"s7H3h&d1y/W Dated=newDate(); 1g&l"G#T*J![
8、 //在默认时区下输出日期和时间值 +c6`1o7T$f"[&l,m.b System.out.println(d); !x"E!N7^0A1G } 5y E1L7a7p7P:~'N9Z} importjava.util.Date;publicclassDateTest{ publicstaticvoidmain(String[]args){3d-v8N!K-N Dated=newDate(); //在默认时区下输出日期和时间值2i2{#r t7F3J
9、7F#J/C System.out.println(d);2i#&N._(^;L*u1b }'C'D,C4S&