解决java字符串转换成时间Unparseable date出错的问题

 更新时间:2021年06月18日 09:51:08   作者:Master_Yoda  
这篇文章主要介绍了解决java字符串转换成时间Unparseable date出错的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

今天在写代码的时候,在将字符串转换成时间的时候,出现了这样的问题。

java.text.ParseException: Unparseable date: "2017-1-1 00:00:00"

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date start = df.parse(startTime);
        Date stop = df.parse(stopTime);
        long timeSpan = stop.getTime() - start.getTime();
        long hours = timeSpan / (3600 * 1000);

我通过上面这些代码来计算传入的连个时间的时间差,可以在运行的时候却出现上面那个问题,百度了一下,在进行时间转换的时候,字符串的长度要一一对应,

也就是说和这个“yyyy-MM-dd“要长度一致,比如2013-1-1要转换成时间的话需要写成”2013-01-01“;

然后就可以转换成功了!

java.text.ParseException: Unparseable date: ""--异常6

情景:

在struts2项目在进行时间段查询时,action处报了如下java.text.ParseException: Unparseable date: "" ,查看一下代码没有问题,在进行数据接收时进行判断,但是没有得到想要结果,有些郁闷的,解决后在此记录一下:

[1]之前报错代码:

 if (bgndate!=null&&bgndate!=""&&enddate!=null && enddate!="")) 

就是在这里出现,请求时间为空时,按理不该走的,实际却走了,那肯定是我这个判断有问题啦

    public String yaoqinglist() throws Exception {
        try{
             //bgndate 和 enddate 传过来是字符串的类型
            ActWork actWork=new ActWork();
            // 小写的mm表示的是分钟
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if (bgndate!=null&&bgndate!=""&&enddate!=null && enddate!="")) {
 
                Date bDate = sdf.parse(bgndate);
                Date eDate = sdf.parse(enddate);
                String format = sdf.format(bDate);
                String startTime  = format.replace("-", "");// 去特殊字符
                actWork.setStartTime(startTime);//展会开始时间 如:20190401
                String format1 = sdf.format(eDate);// 去特殊字符
                String endTime = format1.replace("-", "");
                actWork.setEndTime(endTime);//展会结束时间 如:20190430
            }
            ....省略
 
          }catch (Exception e){
            log.error(e.toString(), e);
            return ERROR;
        }
        return "worklist";

[2]寻找原因:

java数据类型的使用用错了,尴尬的不行,java 基础很重要呀 !我们都知道 ,java 分为基础数据类型(byte,short,char,int,long,float,double,boolean )和复合类型(String ,Intger,Long 等),基础类型使用"=="比较,复合类型使用"equals"进行比较,而我使用的变量是String类型,但是我用如bgndate!=""这就肯定不行了,使用equals就可以了。

[3]

if (bgndate!=null&&!bgndate.equals("") &&enddate!=null&& !enddate.equals("")) 

解决如下:

    public String yaoqinglist() throws Exception {
        try{
             //bgndate 和 enddate 传过来是字符串的类型
            ActWork actWork=new ActWork();
            // 小写的mm表示的是分钟
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if (bgndate!=null&&!bgndate.equals("") &&enddate!=null&& !enddate.equals("")) {
 
                Date bDate = sdf.parse(bgndate);
                Date eDate = sdf.parse(enddate);
                String format = sdf.format(bDate);
                String startTime  = format.replace("-", "");// 去特殊字符
                actWork.setStartTime(startTime);//展会开始时间 如:20190401
         
                String format1 = sdf.format(eDate);// 去特殊字符
                String endTime = format1.replace("-", "");
                actWork.setEndTime(endTime);//展会结束时间 如:20190430
            }
            ....省略
 
          }catch (Exception e){
            log.error(e.toString(), e);
            return ERROR;
        }
        return "worklist";

OK 就到这里喽!(^_^)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java使用jaxb操作xml示例

    java使用jaxb操作xml示例

    JAXB主要用来实现对象和XML之间的序列化和反序列化,关于JAXB的介绍就不多说了,这里主要总结下基本使用方法和一些注意事项
    2014-04-04
  • 字节码调教入口JVM 寄生插件javaagent

    字节码调教入口JVM 寄生插件javaagent

    这篇文章主要介绍了字节码调教入口JVM 寄生插件javaagent方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Java 实战项目锤炼之网上商城系统的实现流程

    Java 实战项目锤炼之网上商城系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java+jsp+servlet+mysql+ajax实现一个网上商城系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Jmail发送邮件工具类分享

    Jmail发送邮件工具类分享

    这篇文章主要为大家分享了Jmail发送邮件工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 浅谈Java设计模式之开放封闭原则

    浅谈Java设计模式之开放封闭原则

    本篇文章主要介绍了浅谈Java设计模式之开放封闭原则,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Java创建线程三种方式的优缺点

    Java创建线程三种方式的优缺点

    今天小编就为大家分享一篇关于Java创建线程三种方式的优缺点,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • JAVA中string数据类型转换详解

    JAVA中string数据类型转换详解

    在JAVA中string是final类,提供字符串不可以修改,string类型在项目中经常使用,下面给大家介绍了string七种数据类型转换,需要的朋友可以参考下
    2015-07-07
  • Java中Array、List、ArrayList的区别及说明

    Java中Array、List、ArrayList的区别及说明

    这篇文章主要介绍了Java中Array、List、ArrayList的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java基础之选择结构与循环结构

    Java基础之选择结构与循环结构

    这篇文章主要介绍了Java基础之选择结构与循环结构,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Java OOM 异常场景与排查过程(堆、栈、方法区)

    Java OOM 异常场景与排查过程(堆、栈、方法区)

    这篇文章主要介绍了Java OOM 异常场景与排查过程(堆、栈、方法区),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03

最新评论