将字符串解析为日期戳不需要';不行。JAVA

将字符串解析为日期戳不需要';不行。JAVA,java,Java,我正在尝试将格式为MMM dd yyyy的字符串解析为时间戳。我是这样做的: String dateto = "Dec-01-2013"; try{ DateFormat datetoDF = new SimpleDateFormat("MMM-dd-yyyy"); Date datetoD = (Date)datetoDF.parse(dateto); datetoTS = new Timestamp(datetoD.getTime()); } catch(ParseE

我正在尝试将格式为MMM dd yyyy的字符串解析为时间戳。我是这样做的:

String dateto = "Dec-01-2013";
try{
    DateFormat datetoDF = new SimpleDateFormat("MMM-dd-yyyy");
    Date datetoD = (Date)datetoDF.parse(dateto);
    datetoTS = new Timestamp(datetoD.getTime());
}
catch(ParseException e)
{
    log.error("RegisteredUserDataProvider:getFilteredUsers:ParseException: " + e.getMessage());
    String stackTrace = ExceptionUtils.getStackTrace(e);
    log.error(stackTrace);
}
为什么它只适用于3月份(例如2013年3月1日)? 当我给出其他月份的其他日期时,我得到

java.text.ParseException: Unparseable date: "Dec-01-2013"
我每月检查一组变量:
“2013年12月1日”、“2013年11月1日”、“2013年10月1日”、“2013年9月1日”、“2013年8月1日”、“2013年7月1日”、“2013年6月1日”、“2013年5月1日”、“2013年4月1日”、“2013年2月1日”、“2013年1月1日”和“2013年3月4日”。它只适用于三月。你知道为什么吗?

看起来你默认的
语言环境是不同的

DateFormat datetoDF = new SimpleDateFormat("MMM-dd-yyyy", Locale.ENGLISH);

您的默认语言环境可能无法识别单词“Jan”、“Feb”等。

看起来您的默认语言环境不同

DateFormat datetoDF = new SimpleDateFormat("MMM-dd-yyyy", Locale.ENGLISH);
您的默认区域设置可能无法识别单词“Jan”、“Feb”等。

您可以使用此选项

 String dateto = "Dec-01-2013";
 Date datetoD = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(dateto );
 datetoTS = new Timestamp(datetoD.getTime());
你可以用这个

 String dateto = "Dec-01-2013";
 Date datetoD = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(dateto );
 datetoTS = new Timestamp(datetoD.getTime());

所有关于本地或您正在传递日期
Dec-01-2013
,带空格。 请提供不带空格的正确日期,如
2013年12月1日
,并尝试打印
Locale.getDefault()
,如果您的默认值设置为类似于Korea的值,则肯定会出现此异常,然后尝试使用类似的值


DateFormat datetoDF=新的SimpleDateFormat(“MMM-dd-yyyy”,Locale.ENGLISH)

所有关于本地的信息,或者您正在传递日期
2013年12月1日
并带有空格。 请提供不带空格的正确日期,如
2013年12月1日
,并尝试打印
Locale.getDefault()
,如果您的默认值设置为类似于Korea的值,则肯定会出现此异常,然后尝试使用类似的值


DateFormat datetoDF=新的SimpleDateFormat(“MMM-dd-yyyy”,Locale.ENGLISH)

为我工作。你的准确密码<代码>系统输出(日期)
给出了2013-12-01 00:00:00.0奇怪。所以我必须深入挖掘。@R.J是他的所在地导致了这个问题。您的默认区域设置可能是English.worked for me。你的准确密码<代码>系统输出(日期)
给出了2013-12-01 00:00:00.0奇怪。所以我必须深入挖掘。@R.J是他的所在地导致了这个问题。您的默认区域设置可能是英语。