【发布时间】:2017-05-26 22:28:35
【问题描述】:
我正在从包含日期、收盘价、成交量等的 .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)
【问题讨论】:
-
尝试为 SimpleDateFormat 构造函数提供美国语言环境。默认情况下,它将使用可能不是英语的默认语言环境。
-
你最好使用
java.time库 -
土耳其语言环境?其中 May 的缩写是 May(与英语一样),但 April 的缩写是 Nis(代表 Nisan)。