解决解析日期异常

时间:2014-12-28 06:46:31

标签: java android

我有一个字符串“12/3/2014 12:00:00 AM”,我想在日期中投射此字符串,其格式为“yyyy-MM-dd HH:mm:ss”

@DatabaseField(columnName="out_date",dataType=DataType.DATE_STRING,format="yyyy-MM-dd HH:mm:ss")
    private Date out_date;

上面是从日期字符串

获取值的对象
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
outlet.setOut_date(formater.parse(json.getString("outletDate")));

我使用之后出现错误发生java.text.ParseException:Unparseable date:...(偏移2)如何解决该问题提前谢谢

2 个答案:

答案 0 :(得分:0)

转换步骤:

  1. 从您的日期格式创建date对象。
  2. 目标日期格式提供给SimpleDateFormat类构造函数。
  3. 使用date解析SimpleDateFormat
  4. 提供的代码将yyyy-MM-dd HH:mm:ss转换为dd/mm/yyyy HH:mm:ss格式。

    try {
    
        SimpleDateFormat sdf1 = new SimpleDateFormat("dd/mm/yyyy HH:MM:SS a");
        Date date = sdf1.parse("12/3/2014 12:00:00 AM");
        String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
        System.out.println(format);
    
    }catch(Exception e){
        e.printStackTrace();
    }
    

    错误:java.text.ParseException: Unparseable date: ... (at offset 2)表示您使用错误的日期格式来解析您的刺痛。

答案 1 :(得分:0)

基于on this answer,你需要这样的东西。首先将字符串以其当前格式转换为日期对象,然后重新格式化日期对象。

String date = "12/3/2014 12:00:00 AM";
SimpleDateFormat sdf = new SimpleDateFormat("mm/dd/yyyy HH:MM:SS a");
Date testDate = null;
try {
    testDate = sdf.parse(date);
}catch(Exception ex){
    ex.printStackTrace();
}
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String newFormat = formatter.format(testDate);
System.out.println(".....Date..."+newFormat);