java.text.ParseException:不可解析的日期:";2012年1月19日星期四下午8:00”;
我想解析一个日期。我的字符串日期是“Thu Jan 19 2012 08:00 PM”。我要分析的代码是:java.text.ParseException:不可解析的日期:";2012年1月19日星期四下午8:00”;,java,date,timestamp,Java,Date,Timestamp,我想解析一个日期。我的字符串日期是“Thu Jan 19 2012 08:00 PM”。我要分析的代码是: format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm aaa"); this.settDate(new Timestamp((format.parse(sDate)).getTime())); 但是,它不起作用。我如何解析这个日期 完整的方法是: public void saveTask(int iDevice, String desc
format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm aaa");
this.settDate(new Timestamp((format.parse(sDate)).getTime()));
但是,它不起作用。我如何解析这个日期
完整的方法是:
public void saveTask(int iDevice, String description, String sDate) throws ParseException {
format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm aaa");
this.setiDeviceId(iDevice);
this.setsDescription(description);
this.settDate(new Timestamp((format.parse(sDate)).getTime()));
DatabaseManager.save(this);
}
例外情况:
java.text.ParseException: Unparseable date: "Thu Jan 19 2012 01:00 AM"
调试图片:
谢谢 您的默认语言环境是什么?由于日期字符串是英文的,请尝试使用美国语言环境对其进行解析:
DateFormat format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm a", Locale.US);
确保那个值真的被调用了。将断点放在该行上,并仔细检查实际值
正如您在这里看到的,代码工作得非常完美。在本例中,请尝试设置类似于我们的语言环境:
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm aaa",Locale.US);
format.parse("Thu Jan 19 2012 08:00 PM");
尝试下面的代码。。。测试和工作
String dateStr = "Thu Jan 19 2012 01:00 PM";
DateFormat readFormat = new SimpleDateFormat( "EEE MMM dd yyyy hh:mm aaa");
DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = readFormat.parse( dateStr );
} catch ( ParseException e ) {
e.printStackTrace();
}
String formattedDate = "";
if( date != null ) {
formattedDate = writeFormat.format( date );
}
System.out.println(formattedDate);
输出为2012-01-19 13:00:00
干杯!!!很乐意帮忙 //确保字符串日期和日期格式模式相同; //例如,您有字符串date=“2018/07/10 10:00:00”
您是否尝试过
format=new SimpleDateFormat(“EEE-MMM-dd-yyyy-hh:mm-a”)代码>你的代码对我来说很好。显示更多代码。您的格式很好,适合我,我得到:Thu Jan 19 20:00:00 SAST 2012
您的错误是什么,它如何不“工作”?是的,我这样做。但它也不起作用。@Andrey是的,但Jose Hdez的默认区域设置可能不是美国或英国,所以如果他没有指定应该使用哪个区域设置,他会得到一个错误。
DateFormat format = new SimpleDateFormat( "yyyy/MM/dd HH:mm:ss");
// now makesure format has same pattern in this case ""yyyy/MM/dd HH:mm:ss"