我遇到了一个问题,我可以将我的String更改为Date但我无法检索数据,因为它位于try / catch块中:
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM");
try {
Date date = formatter.parse(input);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
关于如何检索数据的任何想法?
附加信息:项目是让某人输入他的出生日期和月份,以便程序可以在Excel表格上查看他的星座是什么。我是否需要将输入转换为日期,还是我的头撞墙?
答案 0 :(得分:1)
在try/catch
:
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM");
Date date = null;
try {
date = formatter.parse(input);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
在try-catch-block之外声明date
并将其填充到块内。之后,数据将在变量中,或者不在变量中,具体取决于尝试是否以及在何时失败。这意味着你必须做好准备,不要填写它并检查是否等等。
Date date = null;
try {
date = formatter.parse(input);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
if (date != null) { doSomething(date); }
答案 2 :(得分:0)
您可以在date
块之外声明try
,就像在其他答案中一样;但是,由于您几乎肯定需要有效值才能继续,因此您可能只需要在try
块中包含用于处理它的代码。即:
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM");
try {
Date date = formatter.parse(input);
System.out.println(formatter.format(date));
// do whatever you need with date here...
} catch (ParseException e) {
e.printStackTrace();
}