java时间设定基础入门

java时间设定基础入门

ID:8975982

大小:52.54 KB

页数:23页

时间:2018-04-13

java时间设定基础入门_第1页
java时间设定基础入门_第2页
java时间设定基础入门_第3页
java时间设定基础入门_第4页
java时间设定基础入门_第5页
资源描述:

《java时间设定基础入门》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1日期为什么是从1970年1月1日IsuspectthatJavawasbornandraisedonaUNIXsystem.UNIXconsiderstheepoch(whendidtimebegin)tobemidnight,January1,1970.是说java起源于UNIX系统,而UNIX认为1970年1月1日0点是时间纪元.但这依然没很好的解释"为什么",出于好奇,继续Google,总算找到了答案:http://en.wikipedia.org/wiki/Unix_time这里的解释是:最初计算机操作系统是32位,而时间也是用32位表示。System.o

2、ut.println(Integer.MAX_VALUE);2147483647Integer在JAVA内用32位表示,因此32位能表示的最大值是2147483647。另外1年365天的总秒数是31536000,2147483647/31536000=68.1也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000000000000000000000000000也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行

3、异常了。到这里,我想问题的答案已经出来了:因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIXTIME的纪元时间(开始时间),而java自然也遵循了这一约束。至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后了。最后一个问题:上面System.out.println(newDate(0)),打印出

4、来的时间是8点而非0点,原因是存在系统时间和本地时间的问题,其实系统时间依然是0点,只不过我的电脑时区设置为东8区,故打印的结果是8点。2BigDecimal类packagecn.itcast_01;/**看程序写结果:结果和我们想的有一点点不一样,这是因为float类型的数据存储和整数不一样导致的。它们大部分的时候,都是带有有效数字位。**由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal**BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题。

5、*/publicclassBigDecimalDemo{publicstaticvoidmain(String[]args){System.out.println(0.09+0.01);System.out.println(1.0-0.32);System.out.println(1.015*100);System.out.println(1.301/100);System.out.println(1.0-0.12);}}构造方法packagecn.itcast_02;importjava.math.BigDecimal;/**构造方法:*publicBigDeci

6、mal(Stringval)**publicBigDecimaladd(BigDecimalaugend)*publicBigDecimalsubtract(BigDecimalsubtrahend)*publicBigDecimalmultiply(BigDecimalmultiplicand)*publicBigDecimaldivide(BigDecimaldivisor)*publicBigDecimaldivide(BigDecimaldivisor,intscale,introundingMode):商,几位小数,如何舍取*/publicclassBig

7、DecimalDemo{publicstaticvoidmain(String[]args){//System.out.println(0.09+0.01);//System.out.println(1.0-0.32);//System.out.println(1.015*100);//System.out.println(1.301/100);BigDecimalbd1=newBigDecimal("0.09");BigDecimalbd2=newBigDecimal("0.01");System.out.println("add:"+bd1.add(bd2)

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

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

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