在使用简单的日期格式 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);
请帮我解决这个问题。
在使用简单的日期格式 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);
请帮我解决这个问题。
改变
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 中有斜杠 (/)
因为您正在解析格式不同的日期,所以您已将其描述为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));
模式将是:yyyy/MM/dd HH:mm:ss - z
其中 z 代表通用时区。简单日期格式。