对于想了解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)
- 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)
我得到这个错误。
我的代码有什么问题?
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'
我有以下代码将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
用于保留您想暂时使用的东西。使用Instant
,OffsetDateTime
或ZonedDateTime
代替。
在此问题及其答案中hh
,有更多有关使用HH
或kk
用于格式化和解析小时值的信息:SimpleDateFormat上的java
HH:mm和hh:mm之间的区别。问题是问的出了名的麻烦SimpleDateFormat
,但答案也同样有效DateTimeFormatter
。
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: "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...
<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><UserIssueProcessDto> list = JSON.parseObject(json, <span>new</span> TypeReference<List<UserIssueProcessDto>><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...的相关知识,请在本站寻找。
本文标签: