当前位置: 首页 > 编程笔记 >

System.currentTimeMillis()计算方式与时间的单位转换详解

东郭宏朗
2023-03-14
本文向大家介绍System.currentTimeMillis()计算方式与时间的单位转换详解,包括了System.currentTimeMillis()计算方式与时间的单位转换详解的使用技巧和注意事项,需要的朋友参考一下

一、时间的单位转换

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,则输出:当前时间的一分钟后

到此这篇关于System.currentTimeMillis()计算方式与时间的单位转换详解的文章就介绍到这了,更多相关System.currentTimeMillis()计算方式与时间单位内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍python时间与Unix时间戳相互转换方法详解,包括了python时间与Unix时间戳相互转换方法详解的使用技巧和注意事项,需要的朋友参考一下 对于时间数据,如2018-09-25 09:28:59,有时需要与Unix时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的函数如下: 其中unix_time函数是正常时间转unix时间

  • 本文向大家介绍详解JavaScript UTC时间转换方法,包括了详解JavaScript UTC时间转换方法的使用技巧和注意事项,需要的朋友参考一下 一、前言 1、UTC: Universal Time Coordinated,协调世界时。 2、格林尼治标准时(GMT)     格林尼治标准时间(Greenwich Mean Time,GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为

  • 本文向大家介绍PHP中UNIX时间戳和日期间的转换与计算实例,包括了PHP中UNIX时间戳和日期间的转换与计算实例的使用技巧和注意事项,需要的朋友参考一下 UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位整数表示格林威治标准时间,例如,使用证书11230499325表示当前时间的时

  • 问题内容: 我需要一个代码段,用于将以秒为单位的时间转换成某种人类可读的形式。该函数应接收一个数字并输出如下所示的字符串: 无需格式化,将采用硬编码格式。 问题答案: 在Royi的帮助下,我们获得了 以人类可读形式输出时间间隔的 代码:

  • 本文向大家介绍详解C# TimeSpan 计算时间差(时间间隔),包括了详解C# TimeSpan 计算时间差(时间间隔)的使用技巧和注意事项,需要的朋友参考一下 TimeSpan 结构  表示一个时间间隔。 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 说明: 1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月3

  • 问题内容: 我有一个$ i变量,它在shell脚本中是秒,并且我试图将其转换为24小时HH:MM:SS。这在壳中可能吗? 问题答案: 这是一种有趣的hacky方式,可以完全满足您的需求=) 说明: 该实用程序允许您从字符串开始以秒为单位指定从1970-01-01 00:00:00 UTC开始的时间,并以您指定的任何格式输出时间。 该选项是显示UTC时间,因此不考虑时区偏移量(因为从1970年开始的

  • 问题内容: 我已使用ruby脚本将iso时间戳转换为纪元,我正在解析的文件具有以下时间戳结构: 由于我想保留毫秒,因此我使用了以下Ruby代码将其转换为纪元时间: 但是在python中,我尝试了以下操作: 但是我没有把原定的时间日期倒退, 我想知道这与我的格式化方式有关吗? 问题答案: 用途: 指令仅受支持,而不受。 UPDATE 替代使用,:

  • 问题内容: 是否有32位系统的64位Unix时间戳转换的C ++实现?我需要转换为64位整数,反之亦然,包括leap年,时区和UTC。还需要它可移植,至少对于GNU / Linux和Windows而言。 问题答案: 你需要: 最初(2011年),此答案包含指向2038bug.com的链接,可以在其中下载包含上述功能的小型库。那时,该库已从2038bug.com中删除,链接断开并由主持人从答案中删除