[英]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.