簡體   English   中英

迄今為止的字符串問題

[英]String to date issues

我遇到了一個問題,我可以將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工作表上檢查他的星座。 我需要將輸入內容轉換為日期,還是將頭撞在牆上?

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();
}

在try-catch-block外部聲明date ,並將其填充在block中。 之后,數據將存儲在變量中,這取決於嘗試是否失敗以及在什么時候失敗。 這意味着您必須准備好不填充它,並檢查是否存在null等。

Date date = null;
try {
  date = formatter.parse(input);
  System.out.println(formatter.format(date));
} catch (ParseException e) {
   e.printStackTrace();
}
if (date != null) { doSomething(date); }

您可以像其他答案一樣在try塊外聲明date 但是,由於幾乎肯定無論如何都需要一個有效值來進行處理,因此您可能應該只在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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM