1

在使用简单的日期格式 API 解析以下日期时,我得到了解析器异常。

  String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00";
  java.text.SimpleDateFormat dateformate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  effDate = dateformate.parse(inputTimeStamp);

请帮我解决这个问题。

4

4 回答 4

2

改变

java.text.SimpleDateFormat dateformate=
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

java.text.SimpleDateFormat dateformate=
    new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

您的 inputTimeStamp 中有斜杠 (/)

于 2013-03-09T06:56:33.703 回答
2

因为您正在解析格式不同的日期,所以您已将其描述为SimpleDateFormat. 如果effDate是类型并且应该保存格式化的日期,下面的代码可能会解决它,尽管andString之间不应该有空格。GMT-08:00

 String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00";
 SimpleDateFormat inputDateformat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss - z"); 
 SimpleDateFormat dateformate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 effDate = dateformate.format(inputDateFormat.parse(inputTimeStamp));

我也强烈推荐joda time,特别是当你想对日期进行计算时。

 String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00";
 DateTimeFormatter inputDateformat = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss - z Z"); 
 DateTimeFormatter dateformate = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
 effDate = dateformate.print(inputDateFormat.parseDateTime(inputTimeStamp));
于 2013-03-09T07:02:24.557 回答
0

模式将是:yyyy/MM/dd HH:mm:ss - z其中 z 代表通用时区。简单日期格式

于 2013-03-09T07:00:26.663 回答
0

试试这个:

new SimpleDateFormat("yyyy/MM/dd HH:mm:ss - z");

看到这个FYR

于 2013-03-09T07:09:58.273 回答