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 as2022-01-25
dd/MM/yyyy
- This gives the output as25/01/2022
dd-MMM-yyyy
- This gives the output as25/01/2022
E, MMM dd yyyy
- This gives the output asTue, 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-MM
或 dd-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
格式的輸出,並在包含多個日期時使用它。