Java怎么获取当前时间、计算程序运行时间源码详解(超详细!)

 更新时间:2024年07月19日 08:33:14   作者:煎饼小狗  
有的时候,我们需要查看某一段代码的性能如何,最为简单的方式,可以通过计算该段代码执行的耗时,来进行简单的判断,这篇文章主要给大家介绍了关于Java怎么获取当前时间、计算程序运行时间的相关资料,需要的朋友可以参考下

一、使用 System.currentTimeMillis()

这个方法的返回值为 long ,所以需要用 long 类型的变量来接受。此方法优势是不受时区的影响,但是得到结果是时间戳的格式。

1、获取当前时间   

public class Main{
    public static void main(String[] args) {
        long time = System.currentTimeMillis();
        System.out.println(time); //打印出来的是时间戳
    }
}

我们可以通过代码将其转换成平时我们看到的时间格式:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main{
    public static void main(String[] args) {
        long time = System.currentTimeMillis();
        SimpleDateFormat s = new SimpleDateFormat();
        Date date = new Date();
        
        System.out.println(s.format(date));  //打印出来的是时间格式
        System.out.println(time); //打印出来的是时间戳
    }
}

运行结果:

2、计算程序运行时间

通过System.currentTimeMillis()来计算程序运行消耗的时间很简单,在头尾都记下当前时间,然后相减就可以了。

public class Main{
    public static void main(String[] args) {
        long time1 = System.currentTimeMillis();

        //程序内容
        
        long time2 = System.currentTimeMillis();
        System.out.println("程序运行时间:" + (time2 - time1));
    }
}

二、使用  import java.util.Date

这个方法的返回值为 long ,所以需要用 long 类型的变量来接受。得到结果也是时间戳的格式。

1、获取当前时间

// 时间戳格式

public class Main{
    public static void main(String[] args) {
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);   //时间戳
    }
}

// 上面获取的日期也可以通过 format 转换成我们所需要的格式,如:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main{
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat s1 = new SimpleDateFormat("YYYY-MM-DD");
        SimpleDateFormat s2 = new SimpleDateFormat("hh:mm:ss");
        System.out.println(s1.format(date)); //年月日
        System.out.println(s2.format(date)); //时分秒
    }
}

2、计算程序运行时间

这边计算程序运行时间的原理与 System.currentTimeMillis() 的相同,在头尾都记下当前时间,然后相减就可以了。

import java.util.Date;

public class Main{
    public static void main(String[] args) {
        Date date = new Date();
        long time1 = date.getTime();

        //程序主体

        long time2 = date.getTime();
        System.out.println("程序运行时间:" + (time2 - time1));
    }
}

三、Calendar 类

Calendar 类,是专门用来转换特定时刻和日历字段之间的日期和时间。

获取当前时间

import java.util.Calendar;

public class Main{
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getTime());
    }
}

// 上面获取的日期也可以通过 format 转换成我们所需要的格式,如:

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Main {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       
        System.out.println(s.format(calendar.getTime()));
        //System.out.println(calendar.getTime());
    }
}

四、Date/Time API 

Java 8 提供了一个全新的 API ,用来替换 Java.util.Date 和 Java.util.Calendar。Date/Time API 提供了多个类,帮助我们完成工作。

1、LocalDate

LocalDate 一般只显示日期,没有时间。这意味着我们只能获取当前日期,但没有一天的具体时间。

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Demo5 {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd");

        System.out.println(localDate.format(formatter));    //指定格式输出
        System.out.println(localDate);                      //默认格式输出
    }
}

2、LocalTime

LocalTime 则与 LocalDate 相反,它只能获取时间,而不能获取日期。

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class Demo6 {
    public static void main(String[] args) {
        LocalTime localTime = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("mm:ss");

        System.out.println(localTime.format(formatter));    //指定格式输出
        System.out.println(localTime);                      //默认格式输出
    }
}

3、LocalDateTime

LocalDateTime 顾名思义,就是将以上两者联系起来,即可以获取日期,又可以获取时间。因此, LocalDateTime 是Java中最常用的 Date/Time 类。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy hh:mm:ss");

        System.out.println(dateTime.format(formatter)); //指定格式输出
        System.out.println(dateTime);                   //默认格式输出
    }
}

4、ZonedDateTime

ZoneDateTime 在 Java 8 日期时间 API 的类表示日期和时间时区信息。ZonedDateTime 一般是不可改变的,这意味着该类的对象执行计算的所有方法都会返回一个新的 ZonedDateTime 。

创建方式:

import java.time.ZonedDateTime;

public class Main {
    public static void main(String[] args) {
        ZonedDateTime dateTime = ZonedDateTime.now();
    }
}

ZonedDateTime 有许多方法可以访问时间:

​直接调用即可~

总结

到此这篇关于Java怎么获取当前时间、计算程序运行时间源码详解的文章就介绍到这了,更多相关Java获取当前时间计算程序运行时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot整合jasypt实现重要数据加密

    SpringBoot整合jasypt实现重要数据加密

    Jasypt是一个专注于简化Java加密操作的开源工具,这篇文章主要为大家介绍了详细介绍了如何使用jasypt实现重要数据加密,感兴趣的小伙伴可以了解下
    2025-03-03
  • Java实现经典游戏俄罗斯方块(升级版)的示例代码

    Java实现经典游戏俄罗斯方块(升级版)的示例代码

    俄罗斯方块是一款风靡全球,从一开始到现在都一直经久不衰的电脑、手机、掌上游戏机产品,是一款游戏规则简单,但又不缺乏乐趣的简单经典小游戏。本文将用Java语言实现这一经典游戏,需要的可以参考一下
    2022-09-09
  • 基于hibernate框架在eclipse下的配置方法(必看篇)

    基于hibernate框架在eclipse下的配置方法(必看篇)

    下面小编就为大家带来一篇基于hibernate框架在eclipse下的配置方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • java实现简单发送邮件功能

    java实现简单发送邮件功能

    这篇文章主要为大家详细介绍了java实现简单发送邮件功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 通过使用Byte Buddy便捷创建Java Agent

    通过使用Byte Buddy便捷创建Java Agent

    这篇文章主要为大家介绍了如何通过使用Byte Buddy便捷创建Java Agent的使用说明,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2022-03-03
  • 面向对象和面向过程的区别(动力节点java学院整理)

    面向对象和面向过程的区别(动力节点java学院整理)

    很多朋友不清楚面向对象和面向过程有什么区别,接下来小编给大家整理了关于面向对象和面向过程的区别讲解,感兴趣的朋友可以参考下
    2017-04-04
  • Java中List对象集合按对象中某字段进行排序举例

    Java中List对象集合按对象中某字段进行排序举例

    这篇文章主要给大家介绍了关于Java中List对象集合按对象中某字段进行排序的相关资料,我们在日常开发中也经常会用到排序算法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • SpringBoot okhtt工具类封装方式

    SpringBoot okhtt工具类封装方式

    本文介绍了如何在SpringBoot项目中使用OkHttp工具类进行HTTP请求,并提供了一个封装了GET和POST方法的工具类示例,在Controller中使用该工具类时,需要注意OkHttpClient的静态初始化和异常处理
    2025-03-03
  • Java使用Socket通信传输文件的方法示例

    Java使用Socket通信传输文件的方法示例

    这篇文章主要介绍了Java使用Socket通信传输文件的方法,结合实例形式分析了java socket编程实现文件传输操作的相关技巧,需要的朋友可以参考下
    2017-06-06
  • java正则表达式如何获取xml文件中指定节点的值

    java正则表达式如何获取xml文件中指定节点的值

    这篇文章主要介绍了java正则表达式如何获取xml文件中指定节点的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论