【问题标题】:Unparseable date in java -convert from Date into Calendarjava中无法解析的日期-从日期转换为日历
【发布时间】:2013-02-21 13:33:58
【问题描述】:

我需要从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)

谢谢

【问题讨论】:

  • cal_MDP.setTime(insuree.getBirthDate()); 有什么问题

标签: java date calendar


【解决方案1】:

试试这个代码:

    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());

【讨论】:

  • 我收到此错误日志:21/02/13 15:51:49 错误 [MdmInsureeService]:ServiceProxy 更新异常:'无法解析的日期:“Mon Nov 15 15:00:00 IST 1982”' 21/02/13 15:51:49 错误 [MdmInsureeService]: ServiceProxy 更新异常 (toString): 'java.text.ParseException: Unparseable date: "Mon Nov 15 15:00:00 IST 1982"
【解决方案2】:

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

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

它适用于您的示例日期。无论哪种方式,您都必须使用与生成这些日期字符串相同的格式 语言环境。也许你甚至可以说服生成器使用一些标准格式,比如ISO 8601

【讨论】:

  • 我收到此错误日志:21/02/13 15:51:49 错误 [MdmInsureeService]:ServiceProxy 更新异常:'无法解析的日期:“Mon Nov 15 15:00:00 IST 1982”' 21/02/13 15:51:49 错误 [MdmInsureeService]: ServiceProxy 更新异常 (toString): 'java.text.ParseException: Unparseable date: "Mon Nov 15 15:00:00 IST 1982"
  • 如果在您的环境中运行以下语句会发生什么? new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy", Locale.US).parse("Mon Nov 15 15:00:00 IST 1982");
  • 我无法编译,我有错误:类型不匹配:无法从 Date 转换为 DateFormat
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多