Java 中的日曆類
-
Java.util.Calendar
類 -
java.util.Locale
類 -
Java 中
GregorianCalendar()
類和Calendar
類之間的區別 - Java 中日曆類的實現
- 概括
本文將向你展示如何使用 Java 的日曆系統。它是 Calendar
類的特定子類。
此外,它還提供世界上使用最廣泛的日曆系統。此外,它是一種混合日曆,可與儒略曆和日曆標準互操作。
Java.util.Calendar
類
Calendar
類是一個抽象類,包含用於在特定時間點和日曆欄位集合之間轉換的方法,例如 YEAR
、MONTH
、DAY OF MONTH
、HOUR
、WEEK_OF_YEAR
、ZONE_OFFSET
、FIELD_COUNT
、MILLISECOND
和許多其他。
此外,它還允許使用者修改日曆欄位,例如獲取下一週的日期。
Calendar
類物件時配置的。語法:
Calendar ModifyCal = Calendar.getInstance();
java.util.Locale
類
Locale
物件表示特定的地理、政治或文化領域。一個區域敏感的動作需要一個 Locale
來執行它的任務。
它還應用 Locale
為使用者定製資訊。
Java 中 GregorianCalendar()
類和 Calendar
類之間的區別
區別很容易理解。你已經知道,當我們在大多數程式中使用 Calendar
時,它會構造一個日曆物件:getInstance()
。
儘管如此,還是有一些異常值。值得注意的是,你可以設定的位置/區域以根據你所在的區域顯示特定的日曆系統。
換句話說,假設你需要你的 Calendar
是 GregorianCalendar()
。在這種情況下,你需要做的就是編寫一個新的:GregorianCalendar()
。
但是,我們建議讓 Java 虛擬機器決定預設選擇哪個區域。你必須使用單詞 Calendar.getInstance()
,並準備好應對選擇另一種日曆型別的可能性。
Java 中一些值得注意的日曆
函式
首先,這些方法及其型別很有幫助。請注意,除此之外還有多種方法。
如果你開啟 java.util.GregorianCalendar
類或 calendar
類檔案進行學習,將會有所幫助。
SN | 型別 | 函式語法 | 概括 |
---|---|---|---|
1 | TimeZone |
getTimeZone() |
此功能為你提供當前時區。 |
2 | int |
getWeekYear() |
它只是根據日曆返回一週年。 |
3 | void |
setTimeZone |
你可以使用此方法新增值以設定時區。 |
4 | void |
setWeekDate |
它將 GregorianCalendar 更改為日期說明符指定的日期。 |
5 | boolean |
isWeekDateSupported() |
它只返回 true,表明該類支援特定的星期日期。 |
6 | void |
setGregorianChange(日期日期) |
你可以使用此功能修改日期。 |
7 | int |
hashCode() |
它將為你提供此日曆的雜湊碼物件。 |
Java 中 Calendar
建構函式的重要性
這些建構函式可幫助你擴充套件預設類結構並修改你想要自定義的語言環境、日期、時間、區域和其他功能引數。在大多數程式中,我們不想要預設解決方案,有時,我們想嘗試自己的一些東西。
相反,我們的客戶對格式的偏好可能會有所不同。因此,我們強烈建議研究這些功能。
SN | 函式名稱和語法 | 概括 |
---|---|---|
1 | GregorianCalendar() |
構造區域的預設格式和預設區域中的當前時間。 |
2 | 日曆(時區) |
基於提供的時區的當前時間。 |
3 | GregorianCalendar(TimeZone zone, Locale aLocale) |
基於提供的時區和地區的當前時間。 |
4 | GregorianCalendar(int year, int month, int dayOfMonth) |
構造一個 GregorianCalendar ,並在預設時區和語言環境中設定指定日期。 |
5 | GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) |
為預設時區和地區構造一個具有指定日期和時間的 GregorianCalendar 。 |
Java 中日曆類的實現
一個使用 getTime()
列印今天日期的簡單程式。
示例 1:
package delftstack.calendar.com.util;
import java.util.Date;
import java.util.GregorianCalendar;
// A simple program to print today's date using getTime();
public class Example1 {
public static void main(String[] args) {
GregorianCalendar printtodaydate = new GregorianCalendar();
Date defualt = printtodaydate.getTime();
System.out.println(defualt);
}
}
輸出:
Mon Mar 28 04:50:00 PDT 2022
示例 2:獲取當前星期幾。
package delftstack.calendar.com.util;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
// get current day of the weak
public class Example2 {
public static void main(String[] args) {
GregorianCalendar DOW = new GregorianCalendar();
SimpleDateFormat formatter = new SimpleDateFormat("EEEE");
String dayOfWeek = formatter.format(DOW.getTime());
System.out.println(dayOfWeek);
}
}
輸出:
Monday
示例 3:修改當前日期 100 年後的這一天。
package delftstack.calendar.com.util;
import java.util.Calendar;
import java.util.GregorianCalendar;
// modify current date
// after 100 years on this day
public class Example3 {
public static void main(String[] args) {
GregorianCalendar gregorianCalendar = new GregorianCalendar();
java.util.Date currentdate = gregorianCalendar.getTime();
gregorianCalendar.set(Calendar.YEAR, gregorianCalendar.get(Calendar.YEAR) + 100);
System.out.println("It is: " + currentdate + " today");
System.out.println("After 100 year on today: " + gregorianCalendar.getTime());
}
}
輸出:
It is: Mon Mar 28 04:53:53 PDT 2022 today
After 100 year on today: Sat Mar 28 04:53:53 PDT 2122
示例 4:根據需要重新格式化日曆日期 YY-MMM-dd
。
package delftstack.calendar.com.util;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
public class Example4 {
// reformat calendar date as you want
// YY-MMM-dd
public static void main(String[] args) {
GregorianCalendar gregorianCalendar = new GregorianCalendar();
SimpleDateFormat reformat = new SimpleDateFormat("YY/MM/dd");
String newformat = reformat.format(gregorianCalendar.getTime());
System.out.println(newformat);
}
}
輸出:
22/03/28
示例 5:我當前的時區是什麼?
package delftstack.calendar.com.util;
// what is my current time zone
import java.util.GregorianCalendar;
public class Example5 {
public static void main(String[] args) {
// Create a new calendar
GregorianCalendar update = (GregorianCalendar) GregorianCalendar.getInstance();
System.out.println("What is my current time zone? ");
System.out.println("Your time zone is: " + update.getTimeZone().getDisplayName());
}
}
輸出:
What is my current time zone?
Your time zone is: Pacific Standard Time
示例 6:將我當前的時區設定為 GMT
。
package delftstack.calendar.com.util;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class Example6 {
public static void main(String[] args) {
// Create a new cal class
GregorianCalendar setnewtimezone = (GregorianCalendar) GregorianCalendar.getInstance();
// Convert to another time zone
setnewtimezone.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println("Set my current time zone to GMT");
setnewtimezone.getTimeZone().getDisplayName();
System.out.println("Now print it to confirm updated time zone: "
+ setnewtimezone.getTimeZone().getDisplayName());
}
}
輸出:
Set my current time zone to GMT
Now print it to confirm the updated time zone: Greenwich Mean Time
示例 7:使用 Java calendar
類顯示日期。
package delftstack.calendar.com.util;
import java.util.Calendar;
public class ShowDateWithJavaCalendarClass {
public static void main(String[] args) {
// Make an obj of Cal Class
Calendar ModCalendarclass = Calendar.getInstance();
System.out.println(
"A simple program to show date using java calendar class: " + ModCalendarclass.getTime());
} // function
} // class
輸出:
A simple program to show date using java calendar class: Mon Mar 28 05:01:31 PDT 2022
示例 8:使用 Java GregorianCalendar
類顯示日期。
package delftstack.calendar.com.util;
import java.util.GregorianCalendar;
public class ShowDateWithJavaGreogorianCalendarClass {
public static void main(String[] args) {
// use gregorian calendar class
GregorianCalendar ModGg = new GregorianCalendar();
// display date with grogerian
System.out.print(
"A simple program to show date using java gregorian calendar class: " + ModGg.getTime());
}
}
輸出:
A simple program to show date using java gregorian calendar class: Mon Mar 28 05:03:25 PDT 2022
在 Java 中的 GregorianCalendar
類上使用建構函式
示例 9:使用 Java GregorianCalendar
類顯示日期。
package delftstack.calendar.com.util;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
// creating GregorianCalendarExample1 to define default constructor
public class CustomizeCalUsingDefaultConstructor {
// main() method start
public static void main(String args[]) {
// Make an array that contains months
String setmonths[] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
// Array for the AM, PM
String ampm[] = {"AM", "PM"};
// Create GregorianCalendar and use it as constructor
GregorianCalendar ModGg = new GregorianCalendar();
// Print date, time, others
System.out.println("Current Date: " + ModGg.get(Calendar.DATE));
System.out.println("Current Month: " + setmonths[ModGg.get(Calendar.MONTH)]);
System.out.println("Current Year: " + ModGg.get(Calendar.YEAR));
System.out.println("Current Time: " + ModGg.get(Calendar.HOUR) + ":"
+ ModGg.get(Calendar.MINUTE) + " " + ModGg.get(Calendar.SECOND) + " "
+ ampm[ModGg.get(Calendar.AM_PM)]);
System.out.println("Region: " + ModGg.getTimeZone().getDisplayName());
System.out.println("Region: " + Locale.getDefault().getDisplayName());
}
}
輸出:
Current Date: 28
Current Month: Mar
Current Year: 2022
Current Time: 5:7 15 AM
Region: Pacific Standard Time
Region: English (United States)
概括
你可以以任何你希望的方式在 Java 中編輯 GregorianCalendar
類或 calendar
類的預設引數。實施時間、日期、區域、區域設定和其他調整對於新手來說相對簡單。
我們希望你現在瞭解如何在 Java 中使用日曆。請繼續調整和練習到目前為止所學的內容。
Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.
LinkedIn