【问题标题】:ParseException When Reading Date from File从文件中读取日期时出现 ParseException
【发布时间】:2015-05-03 07:25:52
【问题描述】:

我正在尝试使用程序从文本文件中读取的数据创建一个对象。数据由同一程序放入文本文件中。我正在拆分行,然后将每个段粘贴到 String ArrayList 中。在我到达日期之前,它一直运行良好。将 String 日期解析为 Date 类型会导致 ParseException 错误。任何想法为什么我没有正确解析它?谢谢!

BufferedReader bufReader = new BufferedReader(new 
FileReader("open_tickets.txt"));
String line = bufReader.readLine();    
ArrayList<String> words = new ArrayList<String>();

    while ((line = bufReader.readLine()) != null){
        String[] split = line.split("= ");
        for (int i = 0; i < split.length; i++){
            words.add(split[i]);
            if (split[i].endsWith("2015")){
                String arrayPriority = words.get(1); //"5"
                String description = words.get(3); //"Building on fire"
                String reportedBy = words.get(5); //"Tim"
                String arrayDate = words.get(7); //"Mon Mar 02 13:31:24 CST   
2015"


                int priority = Integer.valueOf(arrayPriority); //5
                SimpleDateFormat formatter = new SimpleDateFormat ("EEE MM dd HH:mm:ss z yyyy");
                try {
                    Date date = formatter.parse(arrayDate);

                } catch (ParseException e){
                    e.printStackTrace();
                }

StackTrace:java.text.ParseException:无法解析的日期:“Mon Mar 02 13:31:24 CST 2015” 在 java.text.DateFormat.parse(DateFormat.java:366) 在 ----.company.Main.addTicketFromFile(Main.java:257) 在----.company.Main.main(Main.java:17)

public Date parse(String source) throws ParseException
{
    ParsePosition pos = new ParsePosition(0);
    Date result = parse(source, pos);
    if (pos.index == 0)
        throw new ParseException("Unparseable date: \"" + source + "\"" ,
            pos.errorIndex);
    return result;
}

【问题讨论】:

  • 好吧Mon Mar 02 13:31:24 CST 2015的格式不是MM/dd/yyyy
  • 请添加堆栈跟踪。
  • @gtgaxiola 刚刚注意到,已更正,仍然返回错误。编辑添加堆栈跟踪。
  • @Michelle 您的 SimpleDate 格式仍然不正确。例如月份应该是 MMM 来解析 Mar
  • 哇,我不敢相信我错过了。谢谢。

标签: java parse-error


【解决方案1】:

试试

SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多