本文主要介绍Java中使用java.time获取时间和日期和格式化时间和日期,以及相关的示例代码。

1、Java 日期

Java没有内置的Date类,但是我们可以导入java.time包以使用日期和时间API。该软件包包括许多日期和时间类。例如:

描述

LocalDate

代表日期(年,月,日(yyyy-MM-dd))

LocalTime

表示时间(小时,分钟,秒和纳秒(HH-mm-ss-ns))

LocalDateTime

代表日期和时间(yyyy-MM-dd-HH-mm-ss-ns)

DateTimeFormatter

用于显示和解析日期时间对象的格式化程序

boolean after(Date date)

如果调用Date对象包含

或晚于指定的日期则返回true,

否则,返回false。

boolean before(Date date)

如果调用Date对象包含

或早于日期指定的日期返回true,

否则,返回false。

Object clone( )

重复调用Date对象。

int compareTo(Date date)

调用对象的值与日期比较。

如果这两个值相等返回0。

如果调用对象是早于日期返回一个负值。

如果调用对象迟于日期返回正值。

int compareTo(Object obj)

以相同的compareTo(Date)操作 

如果obj是一个类日期。

否则,它会抛出一个ClassCastException。

boolean equals(Object date)

如果调用Date对象包含相同的时间

及日期指定日期则返回true,

否则,返回false。

long getTime( )

返回自1970年1月1日起已经过的毫秒数。

int hashCode( )

返回调用对象的哈希代码。

void setTime(long time)

设置所指定的时间,

这表示从1970年1月1日从午夜的时间

和日期以毫秒为单位经过的时间。

String toString( )

调用Date对象转换为字符串,

并返回结果。

2、获取输出当前日期

要获取当前日期,请导入java.time.LocalDate类,并使用其now()方法:

例如:

import java.time.LocalDate; // import the LocalDate class

public class Main {
  public static void main(String[] args) {
    LocalDate myObj = LocalDate.now(); // 创建日期对象
    System.out.println(myObj); // 获取当前日期
  }
}

3、获取输出当前时间

要获取当前时间(小时,分钟,秒和纳秒),请导入java.time.LocalTime类,并使用其now()方法:

例如:

import java.time.LocalTime; // import the LocalTime class

public class Main {
  public static void main(String[] args) {
    LocalTime myObj = LocalTime.now();
    System.out.println(myObj);
  }
}

4、获取输出当前时间和日期

要获取当前日期和时间,请导入java.time.LocalDateTime类,并使用其now()方法:

例如:

import java.time.LocalDateTime; // import the LocalDateTime class

public class Main {
  public static void main(String[] args) {
    LocalDateTime myObj = LocalDateTime.now();
    System.out.println(myObj);
  }
}

5、格式化时间和日期

可以在同一包中将DateTimeFormatter类与ofPattern()方法一起使用,以格式化或解析日期时间对象。

例如:

import java.time.LocalDateTime; // Import the LocalDateTime class
import java.time.format.DateTimeFormatter; // Import the DateTimeFormatter class

public class Main {
  public static void main(String[] args) {
    LocalDateTime myDateObj = LocalDateTime.now();
    System.out.println("Before formatting: " + myDateObj);
    DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");

    String formattedDate = myDateObj.format(myFormatObj);
    System.out.println("After formatting: " + formattedDate);
  }
}

如果要以其他格式显示日期和时间,ofPattern()方法可以接受所有类型的值。例如:

字符

描述

例子

G

时代指示器

AD

y

四位数年份

2001

M

年中的月份

July or 07

d

月份中日期

10

h

时间 A.M./P.M.(1~12)

12

H

天中的小时 (0~23)

22

m

小时中的分钟

30

s

分钟中的秒钟

55

S

毫秒

234

E

星期中的天

Tuesday

D

年中的天

360

F

月中星期中的天

2 (second Wed. in July)

w

年中的星期

40

W

月中的星期

1

a

A.M./P.M. 标记

PM

k

天中的小时(1~24)

24

K

小时A.M./P.M. (0~11)

10

z

时区

东部标准时间

'

脱离文本

分隔符

"

单引号

`

日期格式

示例

yyyy-MM-dd

"1988-09-29"

dd/MM/yyyy

"29/09/1988"

dd-MMM-yyyy

"29-Sep-1988"

E,MMM dd yyyy

“1988年9月29日,星期四”

6、使用SimpleDateFormat格式化日期

SimpleDateFormat是一个具体的类,以本地方式用于格式化和转换日期。SimpleDateFormat允许选择用户定义的模式为日期时间格式。例如:

import java.util.*;
import java.text.*;
public class DateDemo {
   public static void main(String args[]) {
      Date dNow = new Date( );
      SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
      System.out.println("Current Date: " + ft.format(dNow));
   }
}

推荐文档