22

有谁知道 Joda Time 或 Java 本身是否有一个方法,它接受一个 int 或一个 String 作为参数,例如 4 或“4”,并以短格式给出月份的名称,即一月份的 JAN?

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

4

5 回答 5

67

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

String month = date.toString("MMM");
于 2010-06-12T01:52:22.807 回答
18

我相信“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);
    }
}
于 2010-06-11T19:21:59.860 回答
4

我们可以这样做:

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

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

参考

于 2016-11-21T17:16:36.097 回答
0
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);
于 2016-05-23T08:05:48.237 回答
-3

我关于使用这个的最后一个答案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());
    }
}
于 2010-06-11T19:52:54.907 回答