我已经定义了一个对象模型,其中一个数组元素是一个字符串
public static String[] columnNames6
= {"Total Shares",
"Total Calls",
"Call Strike",
"Call Premium",
"Call Expiry"
};
public static Object[][] data6
= {
{ new Double(0), new Double(0), new Double(0), new Double(0),"dd/mm/yyyy"},
};
然后我使用以下代码来获取日期,以便我可以使用数据方法但是 没有快乐 - 有人可以告诉我为什么在我这样做之后会抛出异常
String ExpiryDate = (String)GV.data6[0][4];
System.out.println("DATE STRING IS: " + ExpiryDate);
Date EndOptionDate = new Date(ExpiryDate); // SOMETHING WRONG HERE even though it compiles okay
//Get Todays's Date
Date TodaysDate = new Date();
//Calculate Days Option Expiry
long DaysDifference = EndOptionDate.getTime() - TodaysDate.getTime();
非常感谢一些帮助,因为真的不知道我应该如何编码 粗体行 - 对java来说是新手,所以请原谅我缺乏知识的教程 似乎无法前进。
由于
西蒙
答案 0 :(得分:2)
ExpiryDate是一个字符串尝试将其更改为日期,不推荐使用
Date(String s)
Deprecated. As of JDK version 1.1, replaced by DateFormat.parse(String s).
以下是一个例子:
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date today = df.parse("25/12/2010");
System.out.println("Today = " + df.format(today));
答案 1 :(得分:0)
正如JonH所说,你应该使用DateFormat.parse
代替new Date(String)
。此外,您对日期差异的计算可能也不好:
//Calculate Days Option Expiry
long DaysDifference = EndOptionDate.getTime() - TodaysDate.getTime();
将给出两个日期之间的毫秒差异,而不是几天。您可以像这样使用TimeUnit
来获取日差:
long dayDiff = TimeUnit.MILLISECONDS.toDays(EndOptionDate.getTime() - TodaysDate.getTime());