执行以下代码时,我收到 ParseException
:
double toMilliseconds(double ds2) throws ParseException
{
long durinsec;
DateFormat formatter;
Date convertedDate;
String d2 = String.valueOf(ds2);
System.out.println(d2+"string date");
formatter = new SimpleDateFormat("yyyyMMddHHmmSS");
convertedDate = formatter.parse(d2);
System.out.println(convertedDate+"convertedDate");
durinsec = convertedDate.getTime()/1000;
System.out.println("Date from yyyyMMdd String in Java : " +durinsec );
return durinsec;
}
请帮忙看看哪里出了问题。我从 Java 文本字段获取 yyyyMMddHHmmss
格式的输入。
最佳答案
我建议您使用另一种方法来代替调试代码来查找问题,这样可以节省您所有的脏工作:使用 JFormattedTextField或JSpinner与 SpinnerDateModel获取用户的输入。
您可以根据需要定义模式(即:yyyyMMddHHmmss
),获取 Date 中的值对象和使用 getTime()只需一点点努力就可以直接在这个日期。
例如:
JFormattedTextField textField = new JFormattedTextField(new SimpleDateFormat("yyyyMMddHHmmss"));
textField.setValue(new Date());
JSpinner spinner = new JSpinner(new SpinnerDateModel());
spinner.setEditor(new JSpinner.DateEditor(spinner, "yyyyMMddHHmmss"));
<小时/>
编辑
如果 20141029090910 是 double 型,则 String.valueOf(20141029090910d)
将返回如下内容:
2.014102909091E13
这将导致解析异常,因为它与您的模式不匹配。
关于java - 尝试将日期转换为毫秒时出现 ParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26673765/