解析日期。无法在java中解析相同的格式

图尔古德

我正在从包含日期、收盘价、交易量等的 .csv 文件中解析日期。

   SimpleDateFormat  sdf = new SimpleDateFormat("dd-MMM-yy");

   for(int i = 0; i<pastModel.getRowCount(); i++){

       if(pastModel.getValueAt(i, 0) != null ){

           myDate = sdf.parse(pastModel.getValueAt(i, 0).toString());


       s1.addOrUpdate(new Day(myDate), std.change(pastModel.getValueAt(i, 4).toString()));

       }

   }

我的 csv 文件包含以下数据。

5-May-17,2.60,2.64,2.60,2.61,830666

4-May-17,2.62,2.64,2.59,2.59,1204889

3-May-17,2.63,2.65,2.61,2.62,917924

2-May-17,2.69,2.69,2.62,2.62,1386661

28-Apr-17,2.69,2.72,2.68,2.69,1503999

27-Apr-17,2.71,2.73,2.68,2.69,1688354

26-Apr-17,2.71,2.75,2.69,2.70,5044999

25-Apr-17,2.67,2.72,2.66,2.70,4989761

24-Apr-17,2.68,2.69,2.66,2.66,1341020

21-Apr-17,2.67,2.68,2.63,2.64,1177714

我可以解析到 4 月 28 日的日期,但是当我来到 28-Apr-17 时,我得到了以下输出。csv 文件中的所有日期格式都相同,但我不知道为什么会出现此错误。

java.text.ParseException: Unparseable date: "28-Apr-17"
at java.text.DateFormat.parse(Unknown Source)
at bistx.Bistx.createDataset(Bistx.java:1331)
at bistx.Bistx.chart(Bistx.java:1213)
at bistx.Bistx.runChart(Bistx.java:1349)
at bistx.Bistx$13.actionPerformed(Bistx.java:655)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
苛刻的

尝试向参数化构造函数添加Locale格式SimpleDateFormat

所以,如果我添加US语言环境,代码将如下所示

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yy", Locale.US);

这就是我在 javadocs of 中发现的SimpleDateFormat将语言环境添加到其构造函数的内容。

/** *SimpleDateFormat使用给定的模式和 * 默认日期格式符号构造一个默认 * {@link java.util.Locale.Category#FORMAT FORMAT} 语言环境。*注意:此构造函数可能不支持所有语言环境。* 为了全面覆盖,请使用 {@link DateFormat} * 类中的工厂方法。*

这相当于调用 * {@link #SimpleDateFormat(String, Locale) * SimpleDateFormat(pattern, Locale.getDefault(Locale.Category.FORMAT))}。* * @see java.util.Locale#getDefault(java.util.Locale.Category) * @see java.util.Locale.Category#FORMAT * @param pattern 描述日期和时间格式的模式 * @exception NullPointerException 如果给定的模式为空 * @exception IllegalArgumentException 如果给定的模式无效 */ public SimpleDateFormat(String pattern) { this(pattern, Locale.getDefault(Locale.Category.FORMAT)); }

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java日期格式解析

来自分类Dev

Java无法解析的日期

来自分类Dev

java无法解析的日期:

来自分类Dev

java无法解析的日期:

来自分类Dev

Java英语日期格式解析

来自分类Dev

Java simpledateformat无法解析的日期,即使格式似乎正确

来自分类Dev

Java simpledateformat无法解析的日期,即使格式似乎正确

来自分类Dev

无法在Java中以波兰语语言环境解析格式为d MMMM yyyy的日期

来自分类Dev

转换日期时出错:JAVA中无法解析的日期

来自分类Dev

无法解析`imap_check`日期格式

来自分类Dev

无法将String解析为日期格式

来自分类Dev

Java的无法解析日期的SimpleDateFormat

来自分类Dev

java.text.ParseException:JAVA Android中无法解析的日期

来自分类Dev

无法在JAVA中解析

来自分类Dev

正确解析哪种Java日期格式?

来自分类Dev

Java从TextField解析日期的格式不同

来自分类Dev

错误:java.text.ParseException:无法解析的日期,如何正确格式化日期?

来自分类Dev

无法将csv特定日期格式解析为logstash中的日期

来自分类Dev

在Go中解析奇数JSON日期格式

来自分类Dev

在dart中解析任意日期格式

来自分类Dev

用奇怪的格式解析R中的日期

来自分类Dev

在Excel中解析日期/时间格式

来自分类Dev

解析XSL日期格式

来自分类Dev

Java无法使用SimpleDateFormat解析UTC日期

来自分类Dev

java.text.ParseException:无法解析的日期

来自分类Dev

在Javascript中解析日期时指定日期格式

来自分类Dev

GSON日期格式-在JSON解析中处理空日期

来自分类Dev

查找无法在R Lubridate中解析的日期

来自分类Dev

BigQuery无法从CSV文件解析M / D / YYYY格式的日期