GVKun编程网logo

java.text.ParseException:无法分析的日期:“ 2005年8月22日星期一20:21:52 +0200”(无法分析或处理passapecialize)

11

对于想了解java.text.ParseException:无法分析的日期:“2005年8月22日星期一20:21:52+0200”的读者,本文将提供新的信息,我们将详细介绍无法分析或处理passap

对于想了解java.text.ParseException:无法分析的日期:“ 2005年8月22日星期一20:21:52 +0200”的读者,本文将提供新的信息,我们将详细介绍无法分析或处理passapecialize,并且为您提供关于DateTimeParseException:无法解析文本'2019-06-07 12:18:16'、DST更改导致java.text.ParseException:无法解析的日期、FAQ(59):java.text.ParseException: Unparseable date: "Wed Jan 24 16:28:14 CST 2018"、fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text ''2019-05-24 13:52...的有价值信息。

本文目录一览:

java.text.ParseException:无法分析的日期:“ 2005年8月22日星期一20:21:52 +0200”(无法分析或处理passapecialize)

java.text.ParseException:无法分析的日期:“ 2005年8月22日星期一20:21:52 +0200”(无法分析或处理passapecialize)

我得到这个错误。

我的代码有什么问题?

String line = "Date: Mon, 22 Aug 2005 20:21:52 +0200";String datestring = line.substring(6);DateFormat dateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss ZZZZZ");Date inputDate = null;try {    inputDate = dateFormat.parse(datestring);} catch (ParseException e) {    e.printStackTrace();}

我的错误日志:

java.text.ParseException:无法解析的日期:netspy.EMail.parseLine(EMail.java:133)的java.text.DateFormat.parse(未知来源)为“
Mon,22 Aug 2005 20:21:52 +0200”
netspy.FileManager上的.EMail.parseMail(EMail.java:91).netspy.BaseFrame.switchContent(BaseFrame.java:218)上的netspy.FileManager.findMails(FileManager.java:66)在netspy.BaseListener.actionPerformed(BaseListener.java:79)在javax.swing.DefaultButtonModel.setPressed(未知源)在javax.swing.DefaultButtonModel.fireActionPerformed(未知源)在javax.swing.AbstractButton
$
Handler.actionPerformed(未知源)在javax.swing.DefaultButtonModel.fireActionPerformed(未知源)在javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知源)处,在javax.java.awt.Component.processMouseEvent(未知源)处。在java.awt.Component.processEvent(未知源)的swing.JComponent.processMouseEvent(未知源)在java.awt处的java.awt.Component.dispatchEventImpl(未知源)的java.awt.Container.processEvent(未知源)。
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown
Source)的java.awt.LightweightDispatcher.remouseEvent(Unknown
Source)的java.awt.LightweightDispatcher.processMouseEvent(Unknown
Source)的java.awt.LightweightDispatcher处的Container.dispatchEventImpl(Unknown
Source)。
java.awt.Container.dispatchEventImpl的dispatchEvent(未知源)java.awt.Window.dispatchEventImpl的java.awt.Component.dispatchEventImpl(未知源)的java.awt.EventQueue.dispatchEventImpl(未知源)
java.awt.EventQueue.access $ 400中的Unknown Source)(java.awt中的Unknown
Source)。EventQueue $ 3.run(未知源),java.awt.EventQueue $
3.run(未知源),java.security.AccessController.doPrivileged(本机方法),java.security.ProtectionDomain
$ 1.doIntersectionPrivilege(未知源),java.security .ProtectionDomain $
1.doIntersectionPrivilege(未知源)在java.awt.EventQueue $
4.run(未知源)在java.awt.EventQueue $
4.run(在java.security.AccessController.doPrivileged(本机方法)处)。
security.ProtectionDomain $
1.doIntersectionPrivilege(未知源)在java.awt.EventQueue.dispatchEvent(未知源)在java.awt.EventDispatchThread.pumpOneEventForFilters(未知源)在java.awt.EventDispatchThread.pumpEventsForFilter(未知源)
.EventDispatchThread.pumpEventsForHierarchy(未知源),位于java.awt。java.awt.EventDispatchThread.pumpEvents(未知源)处的java.awt.EventDispatchThread.run中的EventDispatchThread.pumpEvents(未知源)(未知源)

答案1

小编典典

您的系统语言环境不是英语吗?尝试明确指定语言环境:

DateFormat dateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss ZZZZZ",        Locale.US);

DateTimeParseException:无法解析文本'2019-06-07 12:18:16'

DateTimeParseException:无法解析文本'2019-06-07 12:18:16'

我有以下代码将Instant转换为String,然后将其转换回I

String timestampString = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"));LOGGER.info("timestampString: " + timestampString);Instant instant =    LocalDateTime.parse(timestampString,        DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")).toInstant(ZoneOffset.UTC);

它将timestampString打印为: 2019-06-07 12:45:57

并未能解析该字符串:

java.time.format.DateTimeParseException: Text ''2019-06-07 12:45:57'' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {MinuteOfHour=45, HourOfAmPm=0, NanoOfSecond=0, SecondOfMinute=57, MilliOfSecond=0, MicroOfSecond=0},ISO resolved to 2019-06-07 of type java.time.format.Parsed

为什么即使我将时间戳转换为相同的格式也无法解析它?

答案1

小编典典

在一天中的小时内使用HH代替hh

您要问的问题是hh(两次)在格式模式字符串中使用小写字母。您需要HH从00到23的小时中的大写字母,hh是从01到12的AM或PM中的小时数。因此出了问题,java.time不知道12您的字符串中是12
AM还是12 PM并拒绝为您猜测。

如果您仔细阅读异常消息,您还会注意到该异常消息已HourOfAmPm=0被解析。没有说HourOfDay

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");    String timestampString = LocalDateTime.now().format(formatter);    System.out.println("timestampString: " + timestampString);    Instant instant = LocalDateTime.parse(timestampString, formatter)            .toInstant(ZoneOffset.UTC);    System.out.println("instant: " + instant);

刚运行此代码段时,得到以下输出:

timestampString: 2019-06-08 19:22:51instant: 2019-06-08T19:22:51Z

这是 错的
!我在世界标准时间17:22而非19:22左右运行了代码段。由于丹麦仍在使用夏令时(该死),因此此处的当地时间为19:22,用于显示结果,并转换为UTC的相同挂钟时间,而不是同一时刻。您应该
始终 将所需的时区传递给该now方法,以避免此类错误。由于您想要UTC:

    String timestampString = LocalDateTime.now(ZoneOffset.UTC).format(formatter);
timestampString: 2019-06-08 17:27:57instant: 2019-06-08T17:27:57Z

更好的是,不要LocalDateTime用于保留您想暂时使用的东西。使用InstantOffsetDateTimeZonedDateTime代替。

在此问题及其答案中hh,有更多有关使用HHkk用于格式化和解析小时值的信息:SimpleDateFormat上的java
HH:mm和hh:mm之间的区别。问题是问的出了名的麻烦SimpleDateFormat,但答案也同样有效DateTimeFormatter

DST更改导致java.text.ParseException:无法解析的日期

DST更改导致java.text.ParseException:无法解析的日期

以下是引发异常的代码段:

SimpleDateformat dateFormatter = new SimpleDateFormat("yyyyMMddHHmm");
Date date = dateFormatter.parse("201710010200");

上面的代码在2:00 AM之后的所有日期均抛出异常,它一直运行到01:30 AM

已配置夏令时(我正在使用Australia/Sydney时区)。

之后,我可能会看到3:00 AM的日志也没有记录在2:00 AM和3:00 AM之间的时间。

日志:

10月01日03:02:01错误:无法解析的日期:“ 201710010200”

引起原因:java.text.ParseException:无法解析的日期:java.text.DateFormat.parse(DateFormat.java:357)处的“
201710010200”

"201710010200"指定正确的日期格式后,无法解析日期字符串的问题的解决方法是什么?

FAQ(59):java.text.ParseException: Unparseable date:

FAQ(59):java.text.ParseException: Unparseable date: "Wed Jan 24 16:28:14 CST 2018"

1、场景:springmvc+spring 实现功能

2、Log:

java.text.ParseException: Unparseable date: "Wed Jan 24 16:28:14 CST 2018"
	java.text.DateFormat.parse(Unknown Source)
	com.User.Controller.UserController.addUserSave(UserController.java:176)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

解决:
Date date = new Date();   
Timestamp timestamp = new Timestamp(date.getTime()); 
使用 “时间格式刷” 转化一下,再传给数据库和后台;



fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text ''2019-05-24 13:52...

fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text ''2019-05-24 13:52...

<div id="cnblogs_post_body"><p>本地java类</p> <div><div><span><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></span></div> <pre><span>import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

</span><span>/*</span><span>**

  • 问题处理记录 </span><span>*/</span> <span>public</span> <span>class</span><span> UserIssueProcessDto {

    </span><span>/*</span><span>**

    • 处理说明 </span><span>/</span> <span>private</span><span> String f_clsm; </span><span>/</span><span>**
    • 施工队处理反馈 </span><span>*/</span> <span>private</span><span> String f_fk;

    </span><span>/*</span><span>**

    • 处理开始时间 </span><span>*/</span><span> @DateTimeFormat( pattern </span>= <span>"</span><span>yyyy-MM-dd HH:mm:ss</span><span>"</span><span>) </span><span>private</span><span> LocalDateTime f_clkssj;

    </span><span>/*</span><span>**

    • 处理结束时间 </span><span>*/</span><span> @DateTimeFormat( pattern </span>= <span>"</span><span>yyyy-MM-dd HH:mm:ss</span><span>"</span><span>) </span><span>private</span><span> LocalDateTime f_cljssj;

    </span><span>/*</span><span>**

    • 处理时长 </span><span>*/</span> <span>private</span><span> Double duration;

    </span><span>private</span><span> String f_clry;

    </span><span>private</span><span> String f_clryid;

    </span><span>/*</span><span>**

    • 填写人ID </span><span>/</span> <span>private</span><span> Integer creatorId; </span><span>/</span><span>**
    • 填写人名称 </span><span>*/</span> <span>private</span><span> String creatorName;

    </span><span>/*</span><span>**

    • 添加时间 </span><span>*/</span> <span>private</span><span> LocalDateTime f_addtime;

    </span><span>public</span><span> String getF_clsm() { </span><span>return</span><span> f_clsm; }

    </span><span>public</span> <span>void</span><span> setF_clsm(String f_clsm) { </span><span>this</span>.f_clsm =<span> f_clsm; }

    </span><span>public</span><span> String getF_fk() { </span><span>return</span><span> f_fk; }

    </span><span>public</span> <span>void</span><span> setF_fk(String f_fk) { </span><span>this</span>.f_fk =<span> f_fk; }

    </span><span>public</span><span> LocalDateTime getF_clkssj() { </span><span>return</span><span> f_clkssj; }

    </span><span>public</span> <span>void</span><span> setF_clkssj(LocalDateTime f_clkssj) { </span><span>this</span>.f_clkssj =<span> f_clkssj; }

    </span><span>public</span><span> LocalDateTime getF_cljssj() { </span><span>return</span><span> f_cljssj; }

    </span><span>public</span> <span>void</span><span> setF_cljssj(LocalDateTime f_cljssj) { </span><span>this</span>.f_cljssj =<span> f_cljssj; }

    </span><span>public</span><span> Double getDuration() { </span><span>return</span><span> duration; }

    </span><span>public</span> <span>void</span><span> setDuration(Double duration) { </span><span>this</span>.duration =<span> duration; }

    </span><span>public</span><span> String getF_clry() { </span><span>return</span><span> f_clry; }

    </span><span>public</span> <span>void</span><span> setF_clry(String f_clry) { </span><span>this</span>.f_clry =<span> f_clry; }

    </span><span>public</span><span> String getF_clryid() { </span><span>return</span><span> f_clryid; }

    </span><span>public</span> <span>void</span><span> setF_clryid(String f_clryid) { </span><span>this</span>.f_clryid =<span> f_clryid; }

    </span><span>public</span><span> Integer getCreatorId() { </span><span>return</span><span> creatorId; }

    </span><span>public</span> <span>void</span><span> setCreatorId(Integer creatorId) { </span><span>this</span>.creatorId =<span> creatorId; }

    </span><span>public</span><span> String getCreatorName() { </span><span>return</span><span> creatorName; }

    </span><span>public</span> <span>void</span><span> setCreatorName(String creatorName) { </span><span>this</span>.creatorName =<span> creatorName; }

    </span><span>public</span><span> LocalDateTime getF_addtime() { </span><span>return</span><span> f_addtime; }

    </span><span>public</span> <span>void</span><span> setF_addtime(LocalDateTime f_addtime) { </span><span>this</span>.f_addtime =<span> f_addtime; } }</span></pre>

<div><span><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></span></div></div> <p>测试代码</p> <div> <pre>String json = "[{\"f_clsm\":\"111\",\"f_fk\":\"-1\",\"f_clkssj\":\"2019-05-24 13:52:11\",\"f_cljssj\":\"2019-05-24 14:52:11\",\"f_clryid\":\"1000645\"}]"<span>;

    List</span>&lt;UserIssueProcessDto&gt; list = JSON.parseObject(json, <span>new</span> TypeReference&lt;List&lt;UserIssueProcessDto&gt;&gt;<span>() {});
    System.out.println(list);</span></pre>

</div> <p>最初发现项目中使用的是fastjson-1.2.7.jar</p> <p>报错如下:</p> <p>com.alibaba.fastjson.JSONException: Text ''2019-05-24 13:52:11'' could not be parsed at index 10</p> <p> at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:555)<br> at com.alibaba.fastjson.JSON.parseObject(JSON.java:251)<br> at com.alibaba.fastjson.JSON.parseObject(JSON.java:227)<br> at com.alibaba.fastjson.JSON.parseObject(JSON.java:181)<br> at com.TestSpringMVCConvert.test(TestSpringMVCConvert.java:19)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br> at java.lang.reflect.Method.invoke(Method.java:498)<br> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)<br> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)<br> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)<br> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)<br> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)<br> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)<br> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)<br> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)<br> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)<br> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)<br> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)<br> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)<br> at org.junit.runners.ParentRunner.run(ParentRunner.java:300)<br> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)<br> at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)<br> at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)<br> at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)<br> at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)<br>Caused by: java.time.format.DateTimeParseException: Text ''2019-05-24 13:52:11'' could not be parsed at index 10<br> at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)<br> at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)<br> at java.time.LocalDateTime.parse(LocalDateTime.java:492)<br> at java.time.LocalDateTime.parse(LocalDateTime.java:477)<br> at com.alibaba.fastjson.parser.deserializer.Jdk8DateCodec.deserialze(Jdk8DateCodec.java:35)<br> at com.alibaba.fastjson.parser.deserializer.DefaultFieldDeserializer.parseField(DefaultFieldDeserializer.java:33)<br> at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.parseField(ASMJavaBeanDeserializer.java:74)<br> at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer$InnerJavaBeanDeserializer.parseField(ASMJavaBeanDeserializer.java:86)<br> at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:330)<br> at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.parseRest(ASMJavaBeanDeserializer.java:100)<br> at Fastjson_ASM_UserIssueProcessDto_1.deserialze(Unknown Source)<br> at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:635)<br> at com.alibaba.fastjson.parser.deserializer.CollectionDeserializer.deserialze(CollectionDeserializer.java:63)<br> at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:551)<br> ... 26 more</p> <p>最早发现这个问题是在springmvc实体属性注入的时候,经过修改各种springmvc配置无效。</p> <p>后来联想到最近使用的mybatis使用LocalDateTime/LocalDate等类使用了jsr310的时间类,需要额外添加jar包支持。</p> <p>最初错误的把jackson-datatype-jsr310-2.7.0-rc1.jar添加进来,调试一直无效。</p> <p>后来发现一篇文章<span><strong><a href="https://www.oschina.net/question/2258299_2176231" target="_blank"><span>Fastjson支持Java8中的LocalDateTime吗?</span></a>,</strong></span>说fastjson-1.2.11支持,开始更换版本。</p> <p>笔者从<strong><span>mvnrepository.com</span></strong>下载相应的版本,经过最终测试,<ahref="https://my.oschina.net/wenshao" target="_blank">wenshao</a>的说法是错误的。</p> <p><strong><span>必须使用fastjson-1.2.12版本以上才能正常解析。</span></strong></p> <p>原文地址:https://www.cnblogs.com/passedbylove/p/10930665.html</p></div>

关于java.text.ParseException:无法分析的日期:“ 2005年8月22日星期一20:21:52 +0200”无法分析或处理passapecialize的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于DateTimeParseException:无法解析文本'2019-06-07 12:18:16'、DST更改导致java.text.ParseException:无法解析的日期、FAQ(59):java.text.ParseException: Unparseable date: "Wed Jan 24 16:28:14 CST 2018"、fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text ''2019-05-24 13:52...的相关知识,请在本站寻找。

本文标签: