java.text.ParseException:Unparseable date:" 531772200000"

时间:2014-11-19 09:13:33

标签: java string-parsing

我需要将字符串531772200000转换为Java Date对象。日期存储在数据库中。

当我这样做时,我得到java.text.ParseException: Unparseable date: "531772200000"

我的代码:

String dateToBeConverted = String.valueOf(dbObject.get("customerDateOfBirth"));
String parseabledate = dateToBeConverted
    .replace("/Date(","")
    .replace(")/","")
    .replace("+0530", "");
dbObject.put("_id", String.valueOf(dbObject.get("userInfoId")));
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date date;
date = formatter.parse(parseabledate);

3 个答案:

答案 0 :(得分:1)

这看起来像一个时间戳值,这可能会给你一个日期:

new Date(Long.parseLong("531772200000"));

于1986年11月7日星期五18:30:00 GMT + 0000

答案 1 :(得分:1)

这是一个可以正确格式化日期的解决方案。

String d = "531772200000";

SimpleDateFormat newFormatter = new SimpleDateFormat("dd-MMM-yyyy");

try {
    Date date1 = new Date(Long.parseLong(d));
    System.out.println(newFormatter.format(date1)); //Will print out as 07-Nov-1986
} catch (ParseException e) {
    e.printStackTrace();
}

另一种解决方案是使用Joda Time下面的解决方案。

String d = "531772200000";
DateTime newDate = new DateTime(Long.parseLong(d));
DateTimeFormatter dd = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
DateTime date = dd.parseDateTime(newDate.toString());

System.out.println(date.toString("dd-MMM-yyyy")); //Prints out as 07-Nov-1986

我个人更喜欢使用第二种解决方案(Joda Time),因为它更好更容易。

答案 2 :(得分:0)

这是纪元时间格式。

有人已经在https://stackoverflow.com/a/20732668/379779回答了这个问题 并在此网站http://www.epochconverter.com/

中测试您的纪元时间