0

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

但我得到了错误:

21/02/13 15:20:26 错误 [MdmInsureeService]:ServiceProxy 更新异常:'无法解析的日期:“Mon Nov 15 15:00:00 IST 1982”' 21/02/13 15:20:26 错误 [MdmInsureeService] : ServiceProxy 更新异常 (toString): 'java.text.ParseException: Unparseable date: "Mon Nov 15 15:00:00 IST 1982"

这是我的代码:

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)

谢谢

4

2 回答 2

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

于 2013-02-21T15:47:19.503 回答
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());
于 2013-02-21T13:39:11.387 回答