Java教程:获取当前时间和计算程序运行时间的超详细源码解析
目录
一、使用 System.currentTimeMillis()
1、获取当前时间
2、计算程序运行时间
二、使用 import java.util.Date
1、获取当前时间
2、计算程序运行时间
三、Calendar 类
获取当前时间
四、Date/Time API
1、LocalDate
2、LocalTime
3、LocalDateTime
4、ZonedDateTime
一、使用 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 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:怎么获取当前时间、怎么计算程序运行时间 (源码详解 超详细!!!) 的全部内容了,对您有帮助的话请多多点赞支持!
作者:煎饼小狗