欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中System.currentTimeMillis()计算方式与时间单位转换讲解

程序员文章站 2022-06-16 10:49:29
一、时间的单位转换1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s)1秒=1,000,000,000 纳秒(ns)...

一、时间的单位转换

1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)

1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s)

1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s)

1秒=1,000,000,000,000 皮秒(ps) 1皮秒=1/1,000,000,000,000秒(s)

1分钟=60秒

1小时=60分钟=3600秒

二、system.currenttimemillis()计算方式

在开发过程中,通常很多人都习惯使用new date()来获取当前时间。new date()所做的事情其实就是调用了system.currenttimemillis()。如果仅仅是需要或者毫秒数,那么完全可以使用system.currenttimemillis()去代替new date(),效率上会高一点。如果需要在同一个方法里面多次使用new date(),通常性能就是这样一点一点地消耗掉,这里其实可以声明一个引用。

        //获得系统的时间,单位为毫秒,转换为妙
        long totalmilliseconds = system.currenttimemillis();
        long totalseconds = totalmilliseconds / 1000;
         
        //求出现在的秒
        long currentsecond = totalseconds % 60;
         
        //求出现在的分
        long totalminutes = totalseconds / 60;
        long currentminute = totalminutes % 60;
         
        //求出现在的小时
        long totalhour = totalminutes / 60;
        long currenthour = totalhour % 24;
         
        //显示时间
        system.out.println("总毫秒为: " + totalmilliseconds);
        system.out.println(currenthour + ":" + currentminute + ":" + currentsecond + " gmt");

小例子:

package demo.spli;

import java.text.dateformat;
import java.text.simpledateformat;
import java.util.date;
import java.util.timezone;


public class showcurrenttime {

    /**
     * @显示当前时间
     * @2014.9.3
     */
    public static void main(string[] args) {
        // todo auto-generated method stub
        //获得系统的时间,单位为毫秒,转换为妙
        long totalmilliseconds = system.currenttimemillis();
        
        dateformat dateformatterchina = dateformat.getdatetimeinstance(dateformat.medium,dateformat.medium);//格式化输出
        timezone timezonechina = timezone.gettimezone("asia/shanghai");//获取时区 这句加上,很关键。
        dateformatterchina.settimezone(timezonechina);//设置系统时区
        long totalseconds = totalmilliseconds / 1000;
        
        //求出现在的秒
        long currentsecond = totalseconds % 60;
        
        //求出现在的分
        long totalminutes = totalseconds / 60;
        long currentminute = totalminutes % 60;
        
        //求出现在的小时
        long totalhour = totalminutes / 60;
        long currenthour = totalhour % 24;
        
        //显示时间
        system.out.println("总毫秒为: " + totalmilliseconds);
        system.out.println(currenthour + ":" + currentminute + ":" + currentsecond + " gmt");
        
        
        date nowtime = new date(system.currenttimemillis());
        system.out.println(system.currenttimemillis());
        simpledateformat sdformatter = new simpledateformat("yyyy-mm-dd hh:mm:dd");
        string retstrformatnowdate = sdformatter.format(nowtime);
          
        system.out.println(retstrformatnowdate);
    }

}

system.currenttimemillis()+3600*1000)可以这样解读:system.currenttimemillis()相当于是毫秒为单位,但是,后头成了1000,就变成了以秒为单位。那么,3600秒=1小时,所以输出为当前时间的1小时后。

我们可以这样控制时间:system.currenttimemillis()+time*1000),里面传入的time是以秒为单位,当传入60,则输出:当前时间的一分钟后

到此这篇关于java中system.currenttimemillis()计算方式与时间单位转换讲解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。