2015-10-07 124 views
0

我尝试日期转换像2015年2月10日到字符串java.lang.NumberFormatException:对于输入字符串:“2015年2月10日”

我努力,但我得到的错误

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "02/10/2015" 

这是我的代码

private Crosshair xCrosshair; 
long time = ds.getX(xy.getSeriesIndex(), xy.getItem()).longValue(); 
     DecimalFormat dfT = new DecimalFormat("00"); 
     GregorianCalendar gc = new GregorianCalendar(); 
     long lDte = (long)time; 
     Date dtXX = new Date(lDte); 
     gc.setTime(dtXX); 
     String sDD = dfT.format(Double.valueOf(String.valueOf(gc.get(GregorianCalendar.DAY_OF_MONTH)))); 
     String sMM = dfT.format(Double.valueOf(String.valueOf(gc.get(GregorianCalendar.MONTH)+1))); 
     String sYY = dfT.format(Double.valueOf(String.valueOf(gc.get(GregorianCalendar.YEAR)))); 
     String dateString = sDD +"/"+ sMM +"/"+ sYY; 
     this.xCrosshair.setValue(Double.parseDouble(dateString)); 
+2

'02/10/2015'表示法发送? – SomeJavaGuy

+0

因为xCrosshair只需要双倍 – Nasser

回答

2

该行

this.xCrosshair.setValue(Double.parseDouble(dateString)); 

尝试转换一个String,它是一个日期为Double(不是日期)

+0

你看到什么解决方案? – Nasser

+0

你需要做什么?如果十字准线接收到您想传给它的双重极限值?从您的代码中不清楚。 –

0

你的代码不能工作:

String dateString = sDD +"/"+ sMM +"/"+ sYY; 
this.xCrosshair.setValue(Double.parseDouble(dateString)); 

dateString总会有/所以它永远不会被正确解析。

对于这种使用SimpleDateFormat

DateFormat dt = new SimpleDateFormat("dd/MM/yyy"); 
long d = dt.parse(dateString).getTime(); 
+0

不起作用,同样的问题 – Nasser

相关问题