解決java.text.ParseException: Unparseable date: "Tue Oct 16 14:18:11 MYT 2018"異常
阿新 • • 發佈:2019-02-15
產生問題的程式碼
//將字串轉換為日期型別
String str = "Tue Oct 16 10:49:31 MYT 2018";
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
//指定日期格式
SimpleDateFormat format = new SimpleDateFormat("M/d/yy H:mm");
try {
Date currDate= serverFormat.parse(str);
System.out.println("currDate:"+currDate. toString());
//使用Calendar.getInstance()來建立日期物件
Calendar cal = Calendar.getInstance();
cal.setTime(currDate);
//返回當前時間的前一分鐘
cal.add(Calendar.MINUTE, -1);
Date currDateMinus1Min = cal.getTime();
//轉換為指定日期格式 M/d/yy H:mm
String fmtDate = format.format(currDateMinus1Min);
System.out.println( "fmtDate:" + fmtDate);
} catch (ParseException e) {
e.printStackTrace();
}
上面的程式碼進行編譯會出現java.text.ParseException: Unparseable date: “Tue Oct 16 14:18:11 MYT 2018” ,是因為編碼的問題, 將parse解析語句改正如下:
//將字串使用特定的編碼格式轉換為日期型別
Date curDate = serverFormat.parse(str,java.util.Locale.ENGLISH);
//對應的編碼型別還有:Locale.UK, Locale.US
補充
Java給sqlserver資料庫中的datetime型別欄位賦值,將java.util.Date型別轉換為java.sql.Date:
Date sqlDate=new java.sql.Date(date.getTime());
同理使用getTime方法同樣可以將sql.date轉換為util.date.