currenttimemillis转秒(JAVA System.currentTimeMillis();时间的问题)

本文目录
- JAVA System.currentTimeMillis();时间的问题
- 把毫秒换算成秒
- 安卓把毫秒变成日时分秒的格式
- 如何用java计算时间到微秒
- java语言中使用 那System.current.TimeMillis过得当前毫秒数,是从199
JAVA System.currentTimeMillis();时间的问题
System.currentTimeMillis()和new Date().getTime() 获取的都是自1970年至今的毫秒时间,但是这里的今是指的国际标准时。
直接输出new Date()对象时候,toString方法做了时区转换,自动加上当前时区的变化量(东八区(北京) 直接+8)
所以,做取余变化得到的小时数值是标准时,+8才是北京时间。而分钟和秒不存在这个问题,也就无需变换
把毫秒换算成秒
long time = System.currentTimeMillis();//毫秒
long mtime = time/1000; //mtime 为秒
安卓把毫秒变成日时分秒的格式
long a=System.currentTimeMillis();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
format.format(new Date(a));
日期格式字节根据需求改
如何用java计算时间到微秒
publicstaticvoidmain(stringargs){
//todoauto-generatedmethodstub
datedt=newdate();
longtime=dt.gettime();//这就是距离1970年1月1日0点0分0秒的毫秒数
system.out.println(system.currenttimemillis());//与上面的相同
}
至于java中取微秒数,似乎不准确。精确不到微秒级别。有时还与操作系统有关。
java语言中使用 那System.current.TimeMillis过得当前毫秒数,是从199
从1970年到现在的毫秒数
Integer 在JAVA内用32位表示,因此32位能表示的最大值是2147483647。另外1年365天的总秒数是 31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,从1970年开始的话,加上68.1,实际最终到2038年01月19日03时14分07秒,便会到 达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,算下来也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。
到 这里,我想问题的答案已经显现出来了,那就是:因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的 时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到 292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后 了。

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10





