【问题标题】:How to get short month names in Joda Time?如何在 Joda Time 中获得短月份名称?
【发布时间】:2011-03-02 19:41:21
【问题描述】:

有谁知道在 Joda Time 或 Java 本身中是否有一个方法将 int 或 String 作为参数,例如4 或“4”,并以简短格式返回月份名称,即一月的 JAN?

我想长月份名称可以被截断并转换为大写。

【问题讨论】:

    标签: java time jodatime


    【解决方案1】:

    针对 Jon 的回答,您可以通过使用 Joda 对日期时间类的直接访问来进一步简化这一点。

    String month = date.toString("MMM");
    

    【讨论】:

    • String month = date.toString("MMM", Locale.US) 用于特定的语言环境。
    【解决方案2】:

    我相信“MMM”会在 Joda 中给出月份名称......但您需要先构建一个合适的格式化程序。这是一些在我的盒子上打印“Apr”的示例代码。 (您当然可以指定相关的语言环境。)

    import org.joda.time.*;
    import org.joda.time.format.*;
    
    public class Test
    {
        public static void main(String[] args)
        {
            // Year and day will be ignored
            LocalDate date = new LocalDate(2010, 4, 1);
            DateTimeFormatter formatter = DateTimeFormat.forPattern("MMM");
            String month = formatter.print(date);
            System.out.println(month);
        }
    }
    

    【讨论】:

      【解决方案3】:

      我们可以这样做:

      DateTime dt = new DateTime();  // current time
      String monthStr = dt.month().getAsShortText();  // gets the month name
      

      您也可以使用getAsText() 方法作为长月份名称。

      Reference

      【讨论】:

        【解决方案4】:
        LocalDateTime fecha_sistema = LocalDateTime.now();
        
        // return month value betwen 1 to 12
        int month = fecha_sistema.getMonthValue();
        
        // return month name
        String mes = fecha_sistema.getMonth().name();
        
        System.out.println("Month" + mes + "/ " + month);
        

        【讨论】:

          【解决方案5】:

          我关于使用 java.util.Calendar 的最后一个答案比它需要的要复杂一些。这是一个更简单的版本,尽管它仍然需要 Java 6 或更高版本。

          import java.util.Calendar;
          import java.util.Locale;
          
          public class Test
          {
              public static void main(String[] args)
              {
                  // Sample usage.
                  // Should be "Apr" in English languages
                  String month = getMonthNameShort(4);
                  System.out.println(month);
              }
              /**
               * @param month Month number
               * @return The short month name
               */
              public static String getMonthNameShort(int month)
              {
                  Calendar cal = Calendar.getInstance();
                  // Calendar numbers months from 0
                  cal.set(Calendar.MONTH, month - 1);
                  return cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.getDefault());
              }
          }
          

          【讨论】:

          • 请删除这个。这个问题要求 JodaTime
          • @cricket_007 “有谁知道 Joda Time 或 Java 本身是否有方法” Calendar 来自 Java 本身。
          • 啊,好吧。仅仅看到问题文本和标签就很糟糕。我至少会回复java.time 更新的反对票
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-15
          • 1970-01-01
          相关资源
          最近更新 更多