繁体   English   中英

将字符串解析为Datestamp不起作用。 爪哇

[英]Parsing String to Datestamp doesn't work. Java

我正在尝试将MMM-dd-yyyy格式的String解析为Timestamp。 我这样做如下:

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);
}

为什么它仅与三月一起使用(例如2013年3月1日)? 当我给其他月份指定任何其他日期时,我得到

java.text.ParseException: Unparseable date: "Dec-01-2013"

我每个月都检查了一组变量:“ Dec-01-2013”​​,“ Nov-01-2013”​​,“ Oct-01-2013”​​,“ Sep-01-2013”​​,“ Aug-01- 2013”​​,“ 2013年7月1日”,“ 2013年6月1日”,“ 2013年5月1日”,“ 2013年4月1日”,“ 2013年2月1日”,“ 2013年1月1日”和“ 2013年3月4日”。 它仅适用于3月。知道为什么吗?

看起来您的默认Locale有所不同。

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

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

关于“本地”的所有信息,或者您正在通过空格传递日期为Dec -01-2013 提供正确的日期,没有空格,例如Dec-01-2013 ,并尝试打印Locale.getDefault()如果您的默认值设置为韩国,则肯定会得到此异常,然后尝试使用

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

您可以使用它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM