[英]Parsing Date/Time strings in Java
執行以下代碼時,出現ParseException錯誤:
String date;
Scanner in = new Scanner(System.in);
System.out.println("Please enter the date of birth, in format 'January 2, 2010'");
date = in.nextLine();
in.close();
Date birth = new Date();
birth = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(date);
birthcal.setTime(birth);
我想我理解為什么,因為我沒有對輸入內容進行消毒。 我想知道解決這個問題的最佳方法是什么。 解析日期的任何幫助將不勝感激。
(PS當我嘗試捕獲該錯誤時,會彈出另一個特殊的問題,即:
String date;
Scanner in = new Scanner(System.in);
System.out.println("Please enter the date of birth, in format 'January 2, 2010'");
date = in.nextLine();
in.close();
Date birth = new Date();
try {
birth = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
birthcal.setTime(birth);
這里的問題是NullPointerException 。 我不知道這怎么可能。 我認為當您使用new Date()
初始化時,它會為其設置一個值,這意味着代碼的最后一行至少將指向SOMETHING。 對此的任何幫助也將不勝感激。)
我認為,birthcal是java.util.Calendar類的對象引用(我看不到引用的定義)。
如果更改最后一行(birthcal.setTime(birth);)
至:
Calendar birthcal = Calendar.getInstance();
birthcal.setTime(birth);
您不會有任何問題。 如果你走
Calendar birthcal = null;
birthcal.setTime(birth);
您將得到java.lang.NullPointerException
因為您的代碼試圖將“出生”設置為null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.