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