Java 打印不同格式的月份
本文使用不同的库以及使用相应的Java语言中的import语句来格式化月份。在Java程序输出中,有很多显示月份的方法。有时月份用数字表示,有时月份用长格式写,或者用短格式写。月份名称也用其他语言如西班牙语、法语等写下。
步骤
- 步骤1 - 要求用户输入日期。
-
步骤2 - 确定日期的月份部分。
-
步骤3 - 指定月份的格式。
-
步骤4 - 以指定的格式打印月份。
多种方法
我们提供了使用不同方法的解决方案。
- 通过使用java.time.Month
-
通过使用java.util.Date和Arrays
-
通过使用String及其方法
-
通过使用java.text.SimpleDateFormat
-
通过使用java.util.Calendar
让我们逐个查看程序及其输出。
方法1:通过使用java.time.Month
在这种方法中,通过指定从1开始的月份编号来打印月份。例如:Month.of(1)将给出JANUARY。
示例
import java.time.Month;
public class ShowMonth {
public static void main(String[] args)
{
Month mon;
for (int mn=1; mn<=12; mn++){
// The first month starts with number 1
mon = Month.of(mn);
System.out.println(mon);
}
}
}
输出
JANUARY
FEBRUARY
MARCH
APRIL
MAY
JUNE
JULY
AUGUST
SEPTEMBER
OCTOBER
NOVEMBER
DECEMBER
方法2:使用java.util.Date和Arrays
在这种方法中,使用字符串数组来存储月份的简写形式,比如Jan、Feb等。使用substring方法来识别日期中的月份部分,并以指定格式输出。
示例
import java.util.Date;
public class ShowMonth11{
public static void main(String[] args) {
// Months are stored as arrays
String[] st_arr={"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep","Oct","Nov","Dec"};
String[] seq_arr={"First", "Second", "Third", "Fourth", "Fifth", "Sixth", "Seventh", "Eighth", "Ninth","Tenth","Eleventh","Twelfth"};
// Fetch the current date
Date dt = new Date();
String dtstr= dt.toString();
// printing the months
for (int mn=0; mn<12; mn++){
System.out.println("The Number " + seq_arr[mn]+ " month in the year is : " +st_arr[mn]);
}
//selecting the month part from the date
String substr2 = dtstr.substring(4,7);
System.out.println("\nThe Time now is " + dt);
System.out.println("\nThe current month is " + substr2);
}
}
输出
The Number First month in the year is : Jan
The Number Second month in the year is : Feb
The Number Third month in the year is : Mar
The Number Fourth month in the year is : Apr
The Number Fifth month in the year is : May
The Number Sixth month in the year is : Jun
The Number Seventh month in the year is : Jul
The Number Eighth month in the year is : Aug
The Number Ninth month in the year is : Sep
The Number Tenth month in the year is : Oct
The Number Eleventh month in the year is : Nov
The Number Twelfth month in the year is : Dec
The Time now is Fri Feb 24 13:19:06 IST 2023
The current month is Feb
方法3:使用字符串及其方法
在这种方法中,日期被输入为字符串。然后使用substring方法识别并打印月份部分。月份甚至可以以数字形式显示。
示例
public class ShowMonth22{
public static void main(String[] args) {
String dtstr= "02-24-2023";
String dtstr1= "24-02-2023";
//getting the month part of the date
String substr2 = dtstr.substring(0,2);
System.out.println("\nThe date is " + dtstr);
System.out.println("\nThe current month is " + substr2);
//getting the month part of the date
String substr3 = dtstr1.substring(3,5);
System.out.println("\nThe date is " + dtstr1);
System.out.println("\nThe current month is " + substr3);
}
}
输出
The date is 02-24-2023
The current month is 02
The date is 24-02-2023
The current month is 02
方法4:使用java.text.SimpleDateFormat
在这种方法中,可以指定不同的格式作为日期的显示模式。日期中的月份格式以MMM形式(例如Feb)或MMMM形式(例如February)打印。它还可以用于以不同语言环境格式和语言显示月份名称。例如,在西班牙语中,February打印为febrero。
示例
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class ShowMonth33{
public static void main(String[] args) {
Date dtt = new Date();
// MMM means date specification such as Feb, Mar etc
SimpleDateFormat formatted_mmm;
// MMMM means date specification such as February, March etc
SimpleDateFormat formatted_mmmm;
SimpleDateFormat formatted_datestyle;
SimpleDateFormat formatted_datestyle1;
formatted_mmm = new SimpleDateFormat("MMM");
System.out.println(formatted_mmm.format(dtt));
formatted_mmmm = new SimpleDateFormat("MMMM");
System.out.println(formatted_mmmm.format(dtt));
//Specifying the pattern of showing date time
formatted_datestyle = new SimpleDateFormat("EEEE dd MMMM yyyy kk:mm:ss");
System.out.println(formatted_datestyle.format(dtt));
//Specifying the pattern of showing date time
formatted_datestyle1 = new SimpleDateFormat("dd MMM yyyy kk:mm:ss");
System.out.println(formatted_datestyle1.format(dtt));
//setting for the Spanish language
Locale spanishDT = new Locale("es","ES");
System.out.println("Now using Spanish: ");
System.out.printf(spanishDT, "month: %tB\n", dtt);
//setting for the French language
SimpleDateFormat dt_fr = new SimpleDateFormat("dd MMM yyyy kk:mm:ss", new Locale("fr"));
System.out.println("Now using French: ");
System.out.println(dt_fr.format(dtt));
}
}
输出
Feb
February
Friday 24 February 2023 19:48:31
24 Feb 2023 19:48:31
Now using Spanish:
month: febrero
Now using French:
24 févr. 2023 19:48:31
方法5:使用java.util.Calendar
在这种方法中,使用Calendar对象并使用Calendar.MONTH来查找月份。这里的索引从0开始,所以将1添加到Calendar.MONTH以打印出正确的月份。
示例
import java.util.Calendar;
public class ShowMonth44{
public static void main(String[] args) {
//using Calendar instance
Calendar cal = Calendar.getInstance();
//getting Time from cal
System.out.println("The Current Date is: " + cal.getTime());
// Calendar Months start with 0 index therefore 1 is added for the correct result
System.out.println("Current Calendar Month is : " + (cal.get(Calendar.MONTH) +1 ) );
}
}
输出
The Current Date is: Fri Feb 24 19:12:06 IST 2023
Current Calendar Month is: 2
结论
在本文中,我们使用Java语言探讨了有关Month(月份)的不同格式。对于每种方法使用的不同代码示例和输出也都提供了。