解决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= dateFormat.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 = dateFormat.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.


你可能感兴趣的:(java)