首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定日期的System.currentTimeMillis()?

在Java中,System.currentTimeMillis()是一个静态方法,用于获取当前时间的毫秒数。它返回的是自1970年1月1日00:00:00 UTC(称为Unix时间戳)以来的毫秒数。这个方法可以用于计算时间差、设置定时器等场景。

以下是一个简单的示例,展示如何使用System.currentTimeMillis()获取当前时间的毫秒数:

代码语言:java
复制
public class Main {
    public static void main(String[] args) {
        long currentTimeMillis = System.currentTimeMillis();
        System.out.println("当前时间的毫秒数: " + currentTimeMillis);
    }
}

在这个示例中,我们调用System.currentTimeMillis()方法,将返回的毫秒数存储在currentTimeMillis变量中,并将其打印到控制台。

需要注意的是,System.currentTimeMillis()返回的是本地时间,可能会受到系统时间的影响。如果需要获取UTC时间,可以使用Instant.now().toEpochMilli()方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

高并发场景下System.currentTimeMillis()性能问题优化

本篇文章,我们一起来看下System.currentTimeMillis()性能问题。...一、发现问题 从一个示例看System.currentTimeMillis()问题: import org.springframework.util.StopWatch; public class...产生问题主要原因是:在执行该 native 方法时会涉及从 用户态到内核态切换,去调用 Linux 内核时钟源,时钟源只有一个,因此在大量并发时会造成严重资源竞争,从而导致出现性能问题 借助https...三、解决问题 我们从#1和#2可以看出,1ms内可以有多次调用System.currentTimeMillis(),造成频繁从用户态切换到内核态,从而影响性能。...那么,在高并发情况下,可以考虑通过后台线程定时去调用 System.currentTimeMillis() 方法获取时间,然后保存在内存变量中,1ms精度下内存变量值可以在线程复用,这样的话就能减少竞争以及用户态和内核态切换

87810

System.currentTimeMillis() 竟然存在性能问题?

来源:https://dwz.cn/M1NXgypa 在之前文章中就提到了,System.currentTimeMillis()并非最佳实践。但是令人没想到是,除了精度问题,竟还存在性能问题。...System.currentTimeMillis()是极其常用基础Java API,广泛地用来获取时间戳或测量代码执行时长等,在我们印象中应该快如闪电。...可见,并发调用System.currentTimeMillis()一百次,耗费时间是单线程调用一百次250倍。如果单线程调用频次增加(比如达到每毫秒数次地步),也会观察到类似的情况。...实际上在极端情况下,System.currentTimeMillis()耗时甚至会比创建一个简单对象实例还要多,看官可以自行将上面线程中语句换成new HashMap之类试试看。...不过,在System.currentTimeMillis()效率没有影响程序整体效率时,就不必忙着做优化,这只是为极端情况准备

2.9K00
  • System.currentTimeMillis() 存在性能问题...

    但实际上在并发调用或者特别频繁调用它情况下(比如一个业务繁忙接口,或者吞吐量大需要取得时间戳流式程序),其性能表现会令人大跌眼镜。...可见,并发调用System.currentTimeMillis()一百次,耗费时间是单线程调用一百次250倍。 如果单线程调用频次增加(比如达到每毫秒数次地步),也会观察到类似的情况。...实际上在极端情况下,System.currentTimeMillis()耗时甚至会比创建一个简单对象实例还要多,看官可以自行将上面线程中语句换成new HashMap之类试试看。...来到HotSpot源码hotspot/src/os/linux/vm/os_linux.cpp文件中,有一个javaTimeMillis()方法,这就是System.currentTimeMillis...不过,在System.currentTimeMillis()效率没有影响程序整体效率时,就不必忙着做优化,这只是为极端情况准备

    1.8K20

    System.currentTimeMillis()存在性能问题

    System.currentTimeMillis()是极其常用基础Java API,广泛地用来获取时间戳或测量代码执行时长等,在我们印象中应该快如闪电。...可见,并发调用System.currentTimeMillis()一百次,耗费时间是单线程调用一百次250倍。如果单线程调用频次增加(比如达到每毫秒数次地步),也会观察到类似的情况。...实际上在极端情况下,System.currentTimeMillis()耗时甚至会比创建一个简单对象实例还要多,看官可以自行将上面线程中语句换成new HashMap之类试试看。...来到HotSpot源码hotspot/src/os/linux/vm/os_linux.cpp文件中,有一个javaTimeMillis()方法,这就是System.currentTimeMillis...不过,在System.currentTimeMillis()效率没有影响程序整体效率时,就完全没有必要做这种优化,这只是为极端情况准备

    81610

    System.currentTimeMillis性能真有如此不堪吗?

    最近我在研究一款中间件源代码时,发现它获取当前时间不是通过System.currentTimeMillis,而是通过自定义System.currentTimeMillis缓存类(见下方),难道System.currentTimeMillis...思索,System.currentTimeMillis有什么性能问题 看到这里,我恨不得马上打开IDEA,把代码里所有System.currentTimeMillis都给换掉,但是作为一个严谨程序员,...于是我仔细地拜读了这些文章,总结了他们观点: System.currentTimeMillis要访问系统时钟,这属于临界区资源,并发情况下必然导致多线程争用 System.currentTimeMillis...(),不会导致测试不公平 数据说话,System.currentTimeMillis性能没有问题 通过改进测试代码(测试代码见文末),并添加了优化“大师”们缓存时钟做对比,我得到了以下数据: 次数...实际环境中几乎是达不到上述测试中多线程长时间并发调用System.currentTimeMillis这样情况,因而我认为没有必要对System.currentTimeMillis做所谓“优化”

    1.2K11

    雪花算法对System.currentTimeMillis()优化真的有用么?

    ()获取时间,有一种说法是认为System.currentTimeMillis()慢,是因为每次调用都会去跟系统打一次交道,在高并发情况下,大量并发系统调用容易会影响性能(对它调用甚至比new一个普通对象都要耗时...()); System.out.println(System.currentTimeMillis() - timer); } } Windows:i5-4590 16G内存 4...linux上由于虚拟机,核数增加时候,并无太多作用,但是时间对比于直接调用 System.currentTimeMillis()其实是变慢。...(); } 下面是1千万id,八个线程,测出来调用timeGen()次数,也就是可以看出时间冲突次数: 平台/方法 SystemClock.now() System.currentTimeMillis...还有一个残酷事实,那就是自己定义后台时间刷新,获取时间不是那么准确。在linux中这个差距就更大了,时间冲突次数太多了。

    66730

    System.currentTimeMillis() 存在性能问题

    注意看一下JIT位置 中文维基上对逃逸分析描述基本准确,摘录如下: 在编译程序优化理论中,逃逸分析是一种确定指针动态范围方法——分析在程序哪些地方可以访问到指针。...逃逸分析确定某个指针可以存储所有地方,以及确定能否保证指针生命周期只在当前进程或线程中。...简单来讲,JVM中逃逸分析可以通过分析对象引用使用范围(即动态作用域),来决定对象是否要在堆上分配内存,也可以做一些其他方面的优化。 以下例子说明了一种对象逃逸可能性。...class EscapeAnalysisTest { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis...(); for (int i = 0; i < 5000000; i++) { allocate(); } System.out.println((System.currentTimeMillis

    56610

    别再用System.currentTimeMillis()!拥抱StopWatch优雅计算程序执行耗时

    需求 有时需要记录程序执行时间,最简单就是打印当前时间与执行完时间差值,缺点是: 执行大量测试的话就很麻烦 不直观 如果想对执行时间做进一步控制,则需要在程序中很多地方修改 于是 Spring提供了一个...Thread.sleep(1000); sw.stop(); System.out.println(sw.getLastTaskTimeMillis()); } } 以优雅格式打出所有任务耗时以及占比...; logger.info(watch.prettyPrint()); return sequence; } getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒方法...prettyPrint() 优雅格式打印结果,表格形式 shortSummary() 返回简短总耗时描述 getTaskCount() 返回统计时间任务数量 getLastTaskInfo...().getTaskName() 返回最后一个任务TaskInfo对象名称

    76120

    实用主义:JS判断给定日期是第几周

    前言 这是今天遇到面试题,题目 写一个函数,判断给定日期是几月第几周,当月1日属于上一月,该周计入上一月。...例如: 1)输入日期2016-02-01,返回结果为2-1,表示2016年2月1日属于2月第一周; 2)输入日期2016-09-01,返回结果为8-5,表示2016年9月1日属于8月第五周。...(这里计算一周是从周一到当周周天算为一周;某天是属于某月某一周。以2016年4月为例:4月4日至10日为4月第一周;4月1日至3日不属于4月周次,而是归入3月计算。)...粗略网上搜索了一下,不是原题,OK开始动手分析 分析 首先需要把给定日期转换为一个Date类型 str = Date.parse(str); str = new Date(str);...Date类型使用,我对这部分掌握不怎么牢靠,所以再次翻越了JS高程,照着Date方法写,难点在于处理本月前几天,看看是不是属于上个月周数 就是这样:)

    5.2K80

    还在用 System.currentTimeMillis() 统计代码耗时?太 Low 啦

    能浪浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发......05、以优雅格式打出所有任务耗时以及占比 06、序列服务输出耗时信息 07、更多用法 08、总结 ---- 01、背景 有时我们在做开发时候需要记录每个任务执行时间,或者记录一段代码执行时间,...最简单方法就是打印当前时间与执行完时间差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行时间做进一步控制,则需要在程序中很多地方修改,目前spring-framework提供了一个...项目地址:https://github.com/YunaiV/ruoyi-vue-pro 02、示例 我们来看几个示例 基于微服务思想,构建在 B2C 电商场景下项目实战。...getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒方法 prettyPrint() 优雅格式打印结果,表格形式 shortSummary() 返回简短总耗时描述 getTaskCount

    29730

    雪花算法对System.currentTimeMillis()优化真的有用么?

    前面已经讲过了雪花算法,里面使用了System.currentTimeMillis()获取时间,有一种说法是认为System.currentTimeMillis()慢,是因为每次调用都会去跟系统打一次交道...,在高并发情况下,大量并发系统调用容易会影响性能(对它调用甚至比new一个普通对象都要耗时,毕竟new产生对象只是在Java内存中堆中)。...()); System.out.println(System.currentTimeMillis() - timer); } } Windows:i5-4590 16G内存 4核...linux上由于虚拟机,核数增加时候,并无太多作用,但是时间对比于直接调用 System.currentTimeMillis()其实是变慢。...(); } 下面是1千万id,八个线程,测出来调用timeGen()次数,也就是可以看出时间冲突次数: 平台/方法 SystemClock.now() System.currentTimeMillis

    43700

    别再用System.currentTimeMillis()!拥抱StopWatch优雅计算程序执行耗时

    需求 有时需要记录程序执行时间,最简单就是打印当前时间与执行完时间差值,缺点是: 执行大量测试的话就很麻烦 不直观 如果想对执行时间做进一步控制,则需要在程序中很多地方修改 于是 Spring提供了一个...Thread.sleep(1000); sw.stop(); System.out.println(sw.getLastTaskTimeMillis()); } } 以优雅格式打出所有任务耗时以及占比...; logger.info(watch.prettyPrint()); return sequence; } getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒方法...prettyPrint() 优雅格式打印结果,表格形式 shortSummary() 返回简短总耗时描述 getTaskCount() 返回统计时间任务数量 getLastTaskInfo...().getTaskName() 返回最后一个任务TaskInfo对象名称

    34451

    你还在用System.currentTimeMillis()打印代码执行时间?

    前言 Hutool是一个小而全Java工具类库,里面集成了很多实用工具类,比如文件、流、加密解密、转码、正则、线程、XML等,通过这些工具类就可以快速实现开发。...本博客分享Hutool TimeInterval基本使用,通过这个工具类,以后代码里就不需要为了打印代码执行时间,写了很多System.currentTimeMillis()来计算了 官网:https...创建Springboot项目 新建一个项目,选择Spring Initializr,这里使用spring给我服务url 选择jdk版本,maven类型项目 官网默认没集成hutool,那就后面手动添加吧...使用TimeInterval 在没有使用huttol之前,我们打印一下代码执行时间,都需要通过System.currentTimeMillis()进行打印,如果代码块很多逻辑,就需要多次使用System.currentTimeMillis...() @Test void testNeedTime() { long startTime = System.currentTimeMillis(); AtomicInteger

    49830

    别再用 System.currentTimeMillis 统计耗时了,太LOW,这个工具类好用到爆!

    stopWatch.stop(); } Spring Boot 是用 StopWatch 来统计耗时,而通常情况下,我们会用 System.currentTimeMillis() 来统计耗时,对吧?...)); } 对比之下,我们就能发现,JDK 提供 System.currentTimeMillis() 没有 Spring 提供 StopWatch 简洁、清晰。...那也就是说,如果你项目中没有使用 Spring 全家桶,只用了 hutool 工具包,那就可以使用 hutool StopWatch 来代替 System.currentTimeMillis()。...System.nanoTime() 来计时,本质上和 System.currentTimeMillis() 差别并不大。...看到这,大家可能会恍然大悟,StopWatch 不过是披着一层外衣 System.currentTimeMillis() 嘛? 但妙就妙在,这层外衣足够漂亮,足够优雅。

    63640

    别再用 System.currentTimeMillis() 统计耗时了,太 Low,StopWatch 好用到爆!

    from: 公众号Java技术栈  */ @Test public void jdkWasteTime() throws InterruptedException {     long start = System.currentTimeMillis...", System.currentTimeMillis() - start); } System.currentTimeMillis...这种方式统计耗时确实是用最多,因为它不用引入其他 JAR...()); 来看最后输出结果: 不过有一点不友好是,格式化结果显示是纳秒,而且不能修改。。...当然,以上两个 StopWatch 功能也远不止栈长介绍,栈长介绍这些已经够用了,更多可以深入研究。...工具包中,更灵活、更强大,如果不想额外引入包,也可以考虑 Spring 中,根据自己系统需求定。

    88410

    像专业人士一样使用Google搜索

    谷歌搜索是每个开发人员最重要技能之一。 让我告诉你如何在Google更好使用搜寻。 ---- 1.使用引号强制进行完全匹配搜索: "what is javascript" ---- 2....AND运算符将仅返回与以下两个术语相关结果: html AND css ---- 3.使用OR运算符来获取与其中一个搜索词相关结果 (javascript OR python) free course...-运算符将排除包含以下术语或短语结果: javascript -css ---- 5.使用(*)通配符作为占位符,它将被任何单词或短语替换。...filetype:pdf learn css ---- 8.搜索一系列数字: ecmascript 2016..2018 ---- 9.使用“before”运算符仅返回给定日期之前结果 必须提供年月日日期或仅年...例如: javascript before:2020 ---- 10.使用“after”运算符仅返回给定日期之后结果 必须提供年月日日期或仅年。

    1.1K421

    Excel实战技巧:使用日期时间值

    图1 5.找出给定日期是星期几 如果想要确定一天是周末还是工作日,只需使用WEEKDAY()函数即可完成此操作。...图2 7.加/减日期 由于Excel日期实际上是数字,因此可以通过将一个日期与另一个日期相减来找出两个给定日期之间差。例如,=DATE(2021,7,31)-DATE(2021,7,1)返回30。...要将给定日期添加n天,只需使用给定日期加上该数字即可,例如,="2021-8-8"+14将返回2021-8-22。...10.常用日期/时间函数 Excel有许多日期和时间函数,下面是常用一些: WEEKDAY函数:返回代表一周中第几天数值。 DAY函数:返回一个月中第几天数值。 MONTH函数:返回月份值。...TEXT函数:根据指定格式将日期转换成相应日期格式显示。 =EDATE(date,1):返回下月同一天日期。 =EOMONTH(date,0):返回该月最后一天日期。

    3.8K30

    两个大学实验题,你会做吗?

    实验题目 一、实验目的 编写一些简单测试用程序,作为后续黑盒测试、白盒测试和单元测试样本。 二、实验题目 1、三角形判断; 2、计算给定日期后一天日期。...2、计算给定日期后一天日期 问题描述:程序接受三个整数y、m、d作为输入参数,分别代表年、月、日;输入日期范围为1700年1月1日至2100年12月31日,超出范围或无效输入给出错误提示;根据输入计算指定日期后一天日期...System.out.println("判定为:一般三角形"); } else { throw new IllegalArgumentException("判定为:非三角形"); } } } 计算给定日期后一天日期...java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; //计算给定日期后一天日期...此分享源代码和文章是小编在项目中、学习中整理一些认为不错项目。用户产生一些自愿下载或者付费行为。与平台没有直接关系

    64220
    领券