System.currentTimeMillis()笔记
来源:互联网 发布:python tempfile模块 编辑:程序博客网 时间:2024/05/08 00:12
System.currentTimeMillis()
Java中System.currentTimeMillis() 返回的是从GMT 1970年1月1日00:00:00开始到现在的毫秒数(long型)。1970年是UNIX系统正式发布的时间,所以这一时间也称为UNIX时间戳(UNIX epoch)
按照参考书自己实践了一番:
public static void main(String[] args){ long totalMillisSeconds=System.currentTimeMillis(); long totalSeconds=totalMillisSeconds/1000; int nowSeconds=(int)totalSeconds%60; long totalMinutes=totalSeconds/60; int nowMinutes=(int)totalMinutes%60; long totalHours=totalMinutes/60; int nowHours=(int)totalHours%24; System.out.println("GMT Time is : "+nowHours+":"+nowMinutes+":"+nowSeconds); }
这里输出的时间总是跟当前时间系统对不上,输出的时间是“GMT Time is : 10:30:3”,而我系统的时间是18:30。最开始我还以为是自己的逻辑写错了?后来仔细查看并思考了一下,这里是输出的格林尼治0时区的时间,而我们是东8区,得加上8小时。
System.out.println(new Date(System.currentTimeMillis()));System.out.println(new Date());
这两条语句输出的结果是一样的,查看了代码之后发现:
public Date() { this(System.currentTimeMillis()); public Date(long date) { fastTime = date; }
无参构造方法调用有参构造方法,java不支持默认参数的方法,所以我等价看作:
public Date(long date=System.currentTimeMillis()) { fastTime = date; }
在网上还找到一个获得更小时间戳的函数
System.nanoTime();
返回值(long型)表示从某一固定但任意的时间开始算起的毫微秒数,与当前系统时间无关,由于溢出并不能准确的计算出已过时间,但是如果当作生成随机数seed还是很不错的,因为精确但无法去测和计算。
用以下代码,在我的电脑环境下运行的时候出现了至少51次相同的数
int count=1000; for (int i=0;i<count;i++){ System.out.println(System.currentTimeMillis()); }
总的来说各有各的用处,又想用来计算时间的可以用currentTimeMillis,想要一个随机的不同的数可以用nanoTime,当然也有专门生成随机数的方法可以不用传入seed。
同时还找到了,Java实战项目里面介绍了一些不正确使用java.util.Random API的危害。这个教训告诉我们不要使用,会使随机数分布不均匀:
Math.abs(rnd.nextInt())%n
而使用:
rnd.nextInt(n)
这是个人的学习笔记,哪里有不对的地方还请各位加以指正!=。=
0 0
- System.currentTimeMillis()笔记
- System.currentTimeMillis()
- System.currentTimeMillis()
- System.currentTimeMillis();
- system.currentTimeMillis()
- System.currentTimeMillis();
- System.currentTimeMillis()
- System.currentTimeMillis();
- System.CurrentTimeMillis()
- System.currentTimeMillis()
- System.currentTimeMillis()
- System.currentTimeMillis()
- System.currentTimeMillis()
- 格式化System.currentTimeMillis()
- 格式化System.currentTimeMillis()
- java System.currentTimeMillis()陷阱
- Android中System.currentTimeMillis()
- System.currentTimeMillis()(摘)
- Python IO 编程
- !!声明:为了方便自己整理和助教检查,因此在最近几天将统一修改部分博客标题重新上传,或对内容做一定调整后再上传一次,以前的博客将删除部分!!
- 初学activemq 关键字识别与介绍
- [C#]DataGridView自动调整列宽
- 算法题3:从尾到头打印链表
- System.currentTimeMillis()笔记
- 欢迎使用CSDN-markdown编辑器
- SPOJ 1812 LCS2 - Longest Common Substring II (后缀自动机)
- [005-Makefile-笔记] Makefile的变量
- Kaggle学习:A Journey through Titanic
- MyBatis连接数据库
- canvas 之图片模糊&马赛克
- 文章标题
- 高校网站被黑,觉得这是什么原因呢?