Java SimpleDataFormat不接受##/##

Java SimpleDataFormat不接受##/##,java,simpledateformat,Java,Simpledateformat,下面,我已经得到了我试图使用的代码。它总是命中目标,返回空值。月和日都是整数,并且已经对它们进行了检查,以确保它们位于现有日期的现有日期内。不管怎样,我测试的月份是“05”,当天是“02”。###/##的输入是否出于某种原因不起作用 public static Date getAlphabetDate() { try { String tempDate = month + "/" + day; Date alphabetDate = new Sim

下面,我已经得到了我试图使用的代码。它总是命中目标,返回空值。月和日都是整数,并且已经对它们进行了检查,以确保它们位于现有日期的现有日期内。不管怎样,我测试的月份是“05”,当天是“02”。###/##的输入是否出于某种原因不起作用

public static Date getAlphabetDate()
{
    try
    {
        String tempDate = month + "/" + day;
        Date alphabetDate = new SimpleDateFormat("MMMM d").parse(tempDate);
        return alphabetDate;
    }
    catch(Exception e)
    {
        return null;
    }
}

编辑:我正在尝试格式化此输出,使其看起来像“May 02”。当我查看时,我看到页面的很大一部分专门用于格式化输出。为什么我的格式不是这样?

您正在错误地分析SimpleData格式中的字符串

试试这个:

String tempDate = month + "/" + day;
        Date alphabetDate = new SimpleDateFormat("MM/d").parse(tempDate);

您的输入与格式模式不匹配

您的输入格式为
MM/dd
,但您的模式格式为
MMMM d
,您需要进行其中一项匹配

试用

String tempDate = month + " " + day;
Date alphabetDate = new SimpleDateFormat("MM d").parse(tempDate);

相反,例如…

如果您的输入是
02/05
,则应使用相应的日期格式:

public static Date getAlphabetDate()
{
    try
    {
        String tempDate = month + "/" + day;
        Date alphabetDate = new SimpleDateFormat("MM/dd").parse(tempDate);
        return alphabetDate;
    }
    catch(Exception e)
    {
        return null;
    }
}

月+“/”+日
!=
MMMM d
…啊,这让我至少有个约会。。。但是,当我查看文档时,我需要的似乎只是“M/d”。如果我希望我的输出看起来像“May 02”,我将如何修改它?@Dancalahan使用另一个满足这些要求的
DateFormatter
<代码>日期没有自己的格式概念(超出默认本地命令的范围)编辑:这没有意义。。。SimpleDataFormat的文档特别声明您可以编辑输出。我疯了吗?