Java 中 YYYY-MM-DD 格式的日曆日期

Shikha Chaudhary 2023年10月12日
  1. 在 Java 中把日期轉換成 YYYY-MM-DD 格式
  2. 在 Java 中將日期格式化為 YYYY-MM-DD 格式
  3. 在 Java 中使用 SimpleDateFormat
  4. まとめ
Java 中 YYYY-MM-DD 格式的日曆日期

Java Date 封裝了當前時間和日期。日期類在兩個建構函式的幫助下做到這一點 - Date()Date(long millisec) 建構函式。

我們使用 Date() 建構函式用當前時間和日期初始化物件。另一方面,Date(long millisec) 建構函式以 1970 年 1 月 1 日午夜後的毫秒數作為引數。

但是我們得到的輸出不是 yyyy-MM-dd 格式。本文將展示我們如何以這種格式生成輸出。

我們使用 Java 中的 date() 方法來獲取當前日期和時間。為此,我們使用帶有 toString() 方法的 Date 物件。看下面的例子來理解它。

import java.util.Date;
public class DateExample {
  public static void main(String args[]) {
    // Create a date object
    Date date_of_today = new Date();

    // Use toString() to print the date
    System.out.println(date_of_today.toString());
  }
}

輸出:

Mon Jan 10 09:58:43 UTC 2022

此示例使用 date_of_today 例項化 DDate 物件和 toString() 方法來列印日期。請注意,我們得到的輸出包含日期、月份、日期和年份以及小時:分鐘:秒格式的時間。

當我們使用兩個或多個日期時,這會帶來問題。要從此輸出中刪除日期和時間的名稱,我們可以通過兩種方式使用 printf() 方法。第一個使用符號%$

看下面的例子。

import java.util.Date;
public class DateExample {
  public static void main(String args[]) {
    // Create a new object
    Date date_of_today = new Date();

    // Display the date
    System.out.printf("%1$s %2$tB %2$td, %2$tY", "Date:", date_of_today);
  }
}

輸出:

Date: January 10, 2022

第二種方法是使用 <flag。再看同樣的例子。

import java.util.Date;
public class DateExample {
  public static void main(String args[]) {
    // Create a new object
    Date date_of_today = new Date();

    // display the date
    System.out.printf("%s %tB %<te, %<tY", "Date:", date_of_today);
  }
}

輸出:

Date: January 10, 2022

請注意,在這些示例中,省略了時間。但是我們仍然沒有得到 yyyy-MM-dd 格式的輸出。讓我們看看如何處理這個問題。

在 Java 中把日期轉換成 YYYY-MM-DD 格式

Java 有一個 java.time 包。我們可以使用 java.time 包,而不是使用日期類來處理日期和時間。我們先來看一個例子。

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

public class DemoOfDate {
  public static void main(String[] args) {
    // create an object for date
    LocalDate date_of_today = LocalDate.now();

    // Display the date
    System.out.println(date_of_today);
  }
}

輸出:

2022-01-10

在本例中,我們使用 java.time 包和 LocalDate 類。這次我們得到 yyyy-MM-dd 格式的輸出。java.time 包有四個主要類。

  • LocalDate - 它以年、月、日或 yyyy-MM-dd 格式給出日期作為輸出。
  • LocalTime - 它以 HH-mm-ss-ns 的形式給出時間和納秒的輸出。
  • LocalDateTime - 它以 yyyy-MM-dd-HH-mm-ss-ns 的日期和時間給出輸出。
  • DateTimeFormatter - 這充當日期時間物件的格式化程式,用於顯示和解析它們。

請注意,我們在上面的示例中使用了 LocalDate 類。此外,我們使用了 now() 方法。java 中的 now() 方法是 LocalTime 類的方法。它從系統時鐘獲取預設時區的當前時間。

語法:

public static LocalTime now()

我們沒有在 now() 方法中傳遞任何引數。另一種方法是以 yyyy-MM-dd 格式獲取輸出。讓我們也來看看。這是文件的連結。

在 Java 中將日期格式化為 YYYY-MM-DD 格式

要將日曆日期更改為 yyyy-MM-dd 格式,我們還可以使用格式化的概念。它使日期和時間的工作更加靈活。

為此,我們使用 java.time 包中的 ofPattern() 方法。我們可以使用 ofPattern() 方法獲取輸出的各種方法如下。

  • yyyy-MM-dd - This gives the output as 2022-01-25
  • dd/MM/yyyy - This gives the output as 25/01/2022
  • dd-MMM-yyyy - This gives the output as 25/01/2022
  • E, MMM dd yyyy - This gives the output as Tue, Jan 25 2022

讓我們看一個例子。

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

public class DemoOfDate {
  public static void main(String[] args) {
    LocalDateTime date_of_today = LocalDateTime.now();

    System.out.println("Output before formatting: " + date_of_today);
    DateTimeFormatter format_date_of_today = DateTimeFormatter.ofPattern("yyyy-MM-dd");

    String formattedDate = date_of_today.format(format_date_of_today);
    System.out.println("Output after formatting: " + formattedDate);
  }
}

輸出:

Output before formatting: 2022-01-01T10:46:21.449669400
Output after formatting: 2022-01-01

請注意,我們可以使用格式化獲得 yyyy-MM-dd 格式的輸出。我們還可以移動所有這些格式的值。

例如,當我們在 ofPattern() 方法中傳遞字串 yyyy-MM-dd 時,我們可以將該字串更改為 yyyy-dd-MMdd-MM-yyyy 或以任何其他方式根據需要。這適用於 ofPattern() 方法提供的所有格式。

我們在這裡使用了另一種方法 - format() 方法。format() 方法通過給定的語言環境、引數和 Java 格式格式化字串。

如果我們不指定語言環境,format() 方法會呼叫 Locale.getDefault() 方法來獲取預設語言環境。format() 方法的工作方式與 printf() 函式一樣。

在 Java 中使用 SimpleDateFormat

要獲得 yyyy-MM-dd 格式的輸出,我們可以使用 SimpleDateFormat 類。它提供了在 Java 中格式化(將日期更改為字串)和解析(將字串更改為日期)日期和時間的方法。

通過繼承它,它可以與 java.text.DateFormat 類一起使用。讓我們看一個例子。

import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
  public static void main(String[] args) {
    Date date_of_today = new Date();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String stringDate = format.format(date_of_today);
    System.out.println(stringDate);
  }
}

輸出:

2022-01-01

要了解有關 Java 中的 SimpleDateFormat 類的更多資訊,請參閱此文件

まとめ

本文討論瞭如何在 Java 中將日曆日期更改為 yyyy-MM-dd 格式。其中包括使用 java.time 包,使用 toPattern() 方法和 SimpleDateFormat 類進行格式化。各種方法是 toString()now() 方法。

我們可以獲得 yyyy-MM-dd 格式的輸出,並在包含多個日期時使用它。

相關文章 - Java Date

相關文章 - Java Calendar