您的位置:

Java获取时间

Java是一门流行的编程语言,被广泛应用于各种类型的应用程序开发。时间是程序中经常需要使用的一个参数,如何在Java中正确、方便地获取时间,是每个Java开发者都需要学会的技能。在本文中,我们将讨论Java中各种获取时间的方法,并提供示例代码供您学习参考。

一、Date类

Java中,最常用的获取时间的类是Date类。可以使用Date类中的不同方法获取日期、时间或者两者同时获取。

获取当前日期和时间的代码如下:

import java.util.Date;
public class CurrentDateTime {
   public static void main(String[] args) {
      Date date = new Date();
      System.out.println(date);
   }
}

输出结果为:Thu May 27 14:23:15 CST 2021

输出结果的格式为EEE MMM dd HH:mm:ss zzz yyyy,其中:

  • EEE表示星期几
  • MMM表示月份
  • dd表示日期
  • HH:mm:ss表示具体时间(小时、分钟、秒)
  • zzz表示时区
  • yyyy表示年份

可以使用SimpleDateFormat类来将Date格式化成指定格式的字符串。如下所示:

import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
   public static void main(String[] args) {
      Date date = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
      String strDate= formatter.format(date);
      System.out.println(strDate);
   }
}

输出结果为:27/05/2021 15:01:12

SimpleDateFormat中,格式化日期字符串可以使用不同的占位符来代表日期和时间的不同部分:

  • yyyy表示年份
  • MM表示月份(从1到12)
  • dd表示日期(从1到31)
  • HH表示小时数(从0到23)
  • mm表示分钟数(从0到59)
  • ss表示秒数(从0到59)

二、Calendar类

除了Date类,Java中的Calendar类也提供了许多获取时间相关的方法,例如获取当前年、月、日等信息。下面是一个简单的Calendar类的例子:

import java.util.Calendar;
public class GetCurrentDateAndTimeExample {
   public static void main(String[] args) {
      Calendar cal = Calendar.getInstance();
      int year = cal.get(Calendar.YEAR);
      int month = cal.get(Calendar.MONTH) + 1;
      int day = cal.get(Calendar.DAY_OF_MONTH);
      int hour = cal.get(Calendar.HOUR_OF_DAY);
      int minute = cal.get(Calendar.MINUTE);
      int second = cal.get(Calendar.SECOND);

      System.out.printf("Current time is  %02d:%02d:%02d %02d/%02d/%4d\n", hour, minute, second,  month, day, year);
   }
}

输出结果为:Current time is 15:26:46 05/27/2021

Calendar类中,可以使用get()方法获取具体某一部分的日期或时间,常用的有:

  • YEAR 获取年份
  • MONTH 获取月份(0~11,所以需要加1)
  • DAY_OF_MONTH 获取日期
  • HOUR_OF_DAY 获取小时数(从0到23)
  • MINUTE 获取分钟数
  • SECOND 获取秒数

三、LocalDateTime类

自Java 8开始,Java提供了一个新的API,即LocalDateTime类,用于处理日期和时间。相对于DateCalendarLocalDateTime更加易于使用和灵活。下面是一个LocalDateTime的例子:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeExample {
   public static void main(String[] args) {
      LocalDateTime now = LocalDateTime.now();
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
      String formatDateTime = now.format(formatter);
      System.out.println("Current date and time is : " + formatDateTime);
   }
}

输出结果为:Current date and time is : 27/05/2021 15:47:54

LocalDateTime类中,可以使用now()方法获取当前日期和时间,并使用格式化方法format()将其转换成指定格式的字符串。

四、总结

以上就是Java中三种常用的获取时间的方法:使用Date类、Calendar类和LocalDateTime类。Java中时间相关的API非常丰富,您可以根据自己的需求选择合适的API来满足应用程序的需求。此外,在使用日期和时间相关API时,需要注意时区、日期格式化等问题,以免出现错误。