我正在使用 shannah 的数据访问库通过他的 DAO 接口(interface)访问我的对象。
当我的东西在数据库中时调用 unmap 方法时,我在解析日期值时遇到了一个非常奇怪的行为。它仅在 CEST(中欧夏令时)时失败
我尝试使用 NumberUtil.dateValue 方法来解析它,但它仍然失败...
java.lang.RuntimeException: Failed to parse string date format Thu Mar 31 00:00:00 CEST 2016. Could not find appropriate format parser.
我将 DateFormat 定义为这些
dateFormats[0] = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
dateFormats[1] = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");
dateFormats[2] = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZZ yyyy");
dateFormats[3] = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
还尝试修剪字符串,但没有帮助。
我没有想法,因为 SDF 没有像普通 JDK 那样的构造函数,第二个参数是 Locale。
最佳答案
// Method that take date time string , input pattern and out put pattern,that return formatted date as string
public String parseDate(String dateTime,String inputPattern, String outputPattern) throws ParseException {
SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern, Locale.ENGLISH);
SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern);
Date date = inputFormat.parse(dateTime);
String str = outputFormat.format(date);
return str;
}
// call method
String date = parseDate("Thu Mar 31 00:00:00 CEST 2016" ,"EEE MMM dd HH:mm:ss zzz yyyy", "MM-dd-yyyy:HH:mm:ss");
// print date
System.out.println(date);
// Result
03-31-2016:03:00:00
关于java - 解析日期、CET 与 CEST、无效时区、不可解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963229/