Java程式以簡寫格式顯示日曆年份月份名稱


一年有12個月,分別是1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月。這些是月份的全稱,有多種表示方法,例如簡寫格式、全稱格式、MM格式或兩位整數格式。在本文中,我們將學習如何藉助Java以簡寫格式顯示日曆年份的月份名稱。實現方法有很多,如下所示:

讓我們來看看它們的實現。

方法一:使用字串陣列

這也被稱為樸素方法,其中我們使用一個字串陣列,該陣列包含硬編碼為其元素的月份簡寫名稱。然後使用for迴圈遍歷陣列並顯示所有月份。

示例

public class MonthNames {
   public static void main(String[] args) {
      String[] short_format_months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
      System.out.println("Short format of calendar months:");
      for (String month : short_format_months) {
         System.out.println(month);
      }
   }
}

輸出

Short format of calendar months:
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

方法二:使用java.time.Month列舉

Java 8中引入了java.time.Month列舉,它是java.time包中的一個列舉。它表示一年中的12個月,並提供一些在Java中使用月份的有用方法。藉助列舉,我們可以獲取月份的簡寫名稱,並使用for迴圈顯示每個月份的名稱。

示例

import java.time.Month;
public class MonthNames2 {
   public static void main(String[] args) {
      System.out.println("Short format of calendar months:");
      for (Month month : Month.values()) {
         System.out.println(month.toString().substring(0,1)+""+(month.toString().substring(1,3).toLowerCase()));
      }
   }
}

輸出

Short format of calendar months:
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

方法三:使用java.text.DateFormatSymbols類

java.text.DateFormatSymbols類是一個內建的Java庫,它提供對日期和時間格式中使用的符號(例如月份名稱、星期幾名稱和am/pm字串)的訪問。它允許根據指定的區域設定以各種區域設定格式化日期和時間。

DateFormatSymbols類提供方法來以各種形式檢索月份名稱,例如全稱、縮寫名稱和獨立名稱。它還提供用於檢索星期幾名稱以及日期和時間格式中使用的其他符號的方法。

當處理本地化日期和時間資料時,此類特別有用,在本地化日期和時間資料中,使用的格式和符號可能因語言和地區而異。

在這裡,我們將利用java.text.DateFormatSymbols類以簡寫格式獲取月份名稱,並使用for迴圈遍歷此陣列。

示例

import java.text.DateFormatSymbols;
public class MonthNames3 {
   public static void main(String[] args) {
      DateFormatSymbols symbols = new DateFormatSymbols();
      String[] months = symbols.getShortMonths();
      System.out.println("Short format of calendar months:");
      for (String month : months) {
         System.out.println(month);
      }
   }
}

輸出

Short format of calendar months:
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

方法四:使用Map

Mapjava.util包中的一個介面,它表示鍵值對的集合。它允許根據關聯鍵快速有效地查詢值。

Map的工作方式類似於Set,只是它們不儲存單個元素,而是儲存對——一個作為鍵,另一個提供值。透過使用一個鍵,可以以恆定時間快速檢索其對應的值,Map成為許多目的的有效資料結構。

此方法需要對月份名稱進行硬編碼,然後使用鍵檢索。

示例

import java.util.HashMap;
import java.util.Map;

public class MonthNames4 {
   public static void main(String[] args) {
      Map<Integer, String> months = new HashMap<>();
      months.put(1, "Jan");
      months.put(2, "Feb");
      months.put(3, "Mar");
      months.put(4, "Apr");
      months.put(5, "May");
      months.put(6, "Jun");
      months.put(7, "Jul");
      months.put(8, "Aug");
      months.put(9, "Sep");
      months.put(10, "Oct");
      months.put(11, "Nov");
      months.put(12, "Dec");

      System.out.println("Short format of calendar months:");
      for (int i = 1; i <= 12; i++) {
         System.out.println(months.get(i));
      }
   }
}

輸出

Short format of calendar months:
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

方法五:使用SimpleDateFormat類

Java的SimpleDateFormat類位於java.text包中,允許開發人員根據指定的模式格式化和解析日期和時間。在使用SimpleDateFormat之前,必須首先定義一個模式字串,該字串指定所需的日期/時間格式;此模式可以包括表示各種元件(如年、月、日、小時、分鐘和秒)的字母或符號。

定義模式字串後,可以使用SimpleDateFormat根據指定的模式將物件格式化為Date物件或解析為Date物件。為此,它提供了一些方法,例如format(Date date)和parse(String source)。

示例

import java.text.SimpleDateFormat;
import java.util.Date;
public class MonthNames5 {
   public static void main(String[] args) {
      SimpleDateFormat formatter = new SimpleDateFormat("MMM");

      System.out.println("Short format of calendar months:");
      for (int i = 0; i < 12; i++) {
         Date date = new Date(0, i, 1);
         System.out.println(formatter.format(date));
      }
   }
}

輸出

Short format of calendar months:
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

方法六:使用java.util.Calendar類

java.util.Calendar類是一個重要的Java庫,提供日期和時間處理功能。它可用於對日期和時間進行計算和操作,例如新增或減去天、周、月或年;以及提取特定欄位,如年、月或日。

Calendar允許您快速建立一個當前日期和時間的例項,或將其設定為任何特定時間。透過其眾多方法,您可以對日曆執行各種操作,例如設定欄位或獲取資料、計算日期之間的差值或格式化日期以進行顯示。

此類可以處理各種日曆系統,例如格里高利儒略日曆,並支援不同的時區。不幸的是,某些開發人員可能會發現其使用方法和理解較為複雜;此外,它不是執行緒安全的。

示例

import java.util.Calendar;
import java.text.SimpleDateFormat;  
public class MonthNames6 {
   public static void main(String[] args) {
      String[] months = new String[12];
      Calendar cal = Calendar.getInstance();
      for (int i = 0; i < 12; i++) {
         cal.set(Calendar.MONTH, i);
         months[i] = new SimpleDateFormat("MMM").format(cal.getTime());
      }
      System.out.println("Short format of calendar months:");
      for (String month : months) {
         System.out.println(month);
      }
   }
}

輸出

Short format of calendar months:
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

結論

12個月可以用多種格式表示,其中簡寫格式就是其中一種方法。共有6種方法可以以簡寫格式顯示日曆年份的月份名稱。每種方法都有其自身的優缺點,方法的選擇取決於多個因素,例如程式碼可讀性效能和特定用例的要求。無論採用哪種方法,每個月份的簡寫格式都將保持完全相同。此程式對於任何處理日期和時間資料的Java開發人員來說都是一項有用的技能。

更新於:2024年10月10日

632 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.