date-Java中使用SimpleDateFormat转换异常

问题描述

Java中使用SimpleDateFormat转换异常

异常代码:
String min = request.getParameter("minTime");
String max = request.getParameter("maxTime");
Date startTime = dateFormat.parse(dateFormat.format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(min)));

                Date stopTime = dateFormat.parse(dateFormat.format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(max)));

异常信息:
java.text.ParseException: Unparseable date: "6/1/2015 14:23:05"
at java.text.DateFormat.parse(DateFormat.java:357)
at com.pumandai.cps.controller.CpsController.toCpsLists(CpsController.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)

解决方案

java.text.ParseException: Unparseable date: "6/1/2015 14:23:05"
异常已经说明了你传入的日期格式与你定义的格式yyyy-MM-dd HH:mm:ss不符合,你传入的应该是2015-06-01 14:23:05才行。

不明白为什么你要用三次dateformat,new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(min)不就可以得到Date对象了么?

解决方案二:

直接 使用一次将字符串转换为Date类型就可以了吧

解决方案三:

你看下这个代码:

private static void strDateStr() {
        String dateStr = "6/1/2015 14:23:05";

        // String转换为Date,格式字符串必须与上面传入的日期字符串对应,不然会报ParseException
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
        try {
            Date date = sdf.parse(dateStr);
            // 输出date日期,调用date的默认打印方法
            System.out.println("默认的日期输出格式:" + date);

            // 格式化date的输出样式,需要指定想要的格式,比如输出2015-06-01 12:11:11格式的
            SimpleDateFormat outSdf = new SimpleDateFormat(
                    "yyyy-MM-dd HH:mm:ss");
            String outDateStr = outSdf.format(date);
            System.out.println("格式化后的日期输出格式:" + outDateStr);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

输出的内容为:

 默认的日期输出格式Mon Jun 01 14:23:05 CST 2015
格式化后的日期输出格式:2015-06-01 14:23:05

解决方案四:

初始化SimpleDateFormat时使用的格式字符串与你传入的日期格式不一致。

时间: 2024-09-13 11:48:19

date-Java中使用SimpleDateFormat转换异常的相关文章

字符-java 中byte数组转换问题,求思路

问题描述 java 中byte数组转换问题,求思路 现在做的项目有一个byte数组转换的问题,思考很久没有思路,求各路大神给点意见. 需求 :将一个byte数组中的每个元素拆分成两个byte.分别保存前一个byte中的16进制两位的内容的ascii码. 事例 : byte[] a = {0x24,0xBD}; byte[] b = new byte[4]; 想得到的结果: b[0] == 0x32; b[1] == 0x34; b[2] == 0x42; b[3] == 0x44;

深入解析Java中的编码转换以及编码和解码操作_java

一.Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总是这样的:  (1).程序员在操作系统上通过编辑器编写程序代码并且以.java的格式保存操作系统中,这些文件我们称之为源文件.  (2).通过JDK中的javac.exe编译这些源文件形成.class类.  (3).直接运行这些类或者部署在WEB容器中运行,得到输出结果.  这些过程是从宏观上面来观

Java中时间格式转换问题?

问题描述 如何把String类型转换成指定格式的date类型的时间啊??谢谢! 解决方案 解决方案二:LZ自己看SimpleDateFormat吧,这问题问的频率太高了----解决方案三:publicstaticStringstringFormate(Stringtime,Stringpattern){Stringstr_date=null;try{SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss",Locale.E

解析Java中所有错误和异常的父类java.lang.Throwable_java

在java语言中,错误类的基类是java.lang.Error,异常类的基类是java.lang.Exception. 1)相同点:java.lang.Error和java.lang.Exception都是java.lang.Throwable的子类,因此java.lang.Error和java.lang.Exception自身及其子类都可以作为throw的使用对象,如:throw new MyError();和throw new MyException();其中,MyError类是java.l

java中的SimpleDateFormat

问题描述 代码是这样的SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Dateorderdate=newDate();orderdate=sdf.parse("2014-09-2413:41:02");System.out.println(username+""+orderdate); 输出的时间就成了WedSep2413:41:02CST2014不是应该输出跟2014-

java中IP地址转换十进制数实现代码

先看实例  代码如下 class ip { private static long iptolong(string strip) //将127.0.0.1 形式的ip地址转换成10进制整数,这里没有进行任何错误处理 { int j=0; int i=0; long [] ip=new long[4]; int position1=strip.indexof("."); int position2=strip.indexof(".",position1+1); int

关于JAVA中字节序转换的问题Little endian转换为Big endian

问题描述 急求如何将Littleendian转为Bigendian的算法.有一段整型之间转换的算法,但是现在需要用到double型的转换. 解决方案

Java中异常机制的深入研究

由于本文旨在探讨Java"异常机制"的深层原理,因此关于"异常"的使用方法都不做详细说明.首先看一段非常熟悉的用于打开一个文件的C程序段: FILE *fp;fp=fopen(filename,"rw");if(fp==NULL){ printf("cannot open file\n"); exit(0);} 在这段程序中,if条件语句中的一段用来处理没有找到指定文件,或者其它原因无法正确打开指定文件.可是如果遇到一个责任心

hashmap-Java中遇到的一个异常Exception in thread "main" java.lang.NullPointerException

问题描述 Java中遇到的一个异常Exception in thread "main" java.lang.NullPointerException import java.util.*; public class NewHashTest{ public static void main(String[] args) { HashMap hash = new HashMap(); Emp emp1 = new Emp(""laoda""111&q