1. 程式人生 > >解決java.text.ParseException: Unparseable date: "Tue Oct 16 14:18:11 MYT 2018"異常

解決java.text.ParseException: Unparseable date: "Tue Oct 16 14:18:11 MYT 2018"異常

產生問題的程式碼

//將字串轉換為日期型別
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.