java - 将字符串转换为日期抛出解析异常

标签 java android datetime date-format simpledateformat

我正在尝试将字符串转换为日期以与当前日期进行比较,但它抛出解析异常

SimpleDateFormat  format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);  
        try {  
            java.util.Date cookiedate = format.parse("Tue Apr 29 11:40:55 GMT+04:00 2014");  

            Calendar currentDate = Calendar.getInstance();

            String dateNow = format.format(currentDate.getTime());
              java.util.Date currDate =  format.parse(dateNow);

            if (currDate.getTime() > cookiedate.getTime()) {
                return true;
            }


        } catch (ParseException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }

最佳答案

在您的格式中,"yyyy-MM-dd HH:mm:ss" 将匹配日期字符串,如 "2013-03-30 15:57 :00",所以你得到一个 ParseException

如果你想解析"Tue Apr 29 11:40:55 GMT+04:00 2014",你应该使用"EEE MMM dd HH:mm:ss z yyyy" 将您的代码更改为

SimpleDateFormat  format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US); 

关于java - 将字符串转换为日期抛出解析异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22741608/

相关文章:

java - JOptionpane 检查是否输入了某些输入文本,如果没有,则确定按钮不起作用

java - 在 toString 方法中表示公历

java.lang.IllegalStateException : Fragment

python - 从提取的分组数据生成新的数据框

java - java.time API 如何确定政府对区域规则的更改?

java - 连接池和 Thread.interrupt()

java - 向 JComboBox 和 JTextField 添加标签

java - 如何通过ajax调用使用rest web服务

android - 有没有办法禁用特定包的使用?

java - 为什么 Android Studio 没有看到升级后的 Java?