java中的无法解析日期 - 从日期到日历的转换

时间:2013-02-21 13:33:58

标签: java date calendar

我需要将Date(the object :insuree.getBirthDate())转换为Calendar(the object : request_MDP.setBIRTH_DATE)

但我得到错误:

  

21/02/13 15:20:26错误[MdmInsureeService]:ServiceProxy更新   例外:'Unparseable date:'Mon Nov 15 15:00:00 IST 1982“'21/02/13   15:20:26 ERROR [MdmInsureeService]:ServiceProxy更新异常   (toString):'java.text.ParseException:Unparseable date:“Mon Nov 15   1982年1月15日15:00“

这是我的代码:

DateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
Date date_MDP =(Date)formatter.parse(insuree.getBirthDate().toString()); 
Calendar cal_MDP=Calendar.getInstance();
cal_MDP.setTime(date_MDP);
request_MDP.setBIRTH_DATE(cal_MDP);

如何将Date(insuree.getBirthDate())转换为Calendar(setBIRTH_DATE)

由于

2 个答案:

答案 0 :(得分:0)

试试这段代码:

    SimpleDateFormat df = new SimpleDateFormat("KK:mm aa");
    Date date = df.parse("10:30 PM");
    System.out.print(date);
    Calendar cal = GregorianCalendar.getInstance();
    cal.setTimeInMillis(date.getTime());
    System.out.print(cal.getTime());

答案 1 :(得分:0)

是否可以在具有非英语语言环境的系统上运行此代码?这样的区域设置可能无法识别您的示例日期中的工作日或月份(“Mon Nov 15 15:00:00 IST 1982”),因为它使用不同的名称(例如,“Tue”将是德语中的“Di”)。

使用

替换代码段中的第一行
DateFormat formatter = 
    new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy", Locale.US); 

它将适用于您的示例日期。无论哪种方式,您都必须使用用于生成这些日期字符串的相同格式区域设置。也许你甚至可以说服发电机使用一些标准格式,如ISO 8601