我已经阅读了很多过去的帖子,看起来我做的一切都是正确的,但日历由于某种原因错误地解析了字符串。本质上,我正在获取输入的日期并将其解析为日历日期。 println 语句是为了错误测试。
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-YYYY");
Calendar wholeDate = new GregorianCalendar();
System.out.println(txtMmddyyyy.getText());
System.out.println(wholeDate.MONTH + " " + wholeDate.DAY_OF_MONTH + " " + wholeDate.YEAR);
try {
wholeDate.setTime(sdf.parse(txtMmddyyyy.getText()));
} catch (ParseException e3) {
System.out.println("Failure");
e3.printStackTrace();
}
System.out.println(wholeDate.MONTH + " " + wholeDate.DAY_OF_MONTH + " " + wholeDate.YEAR);
当我输入“05-15-2017”时
-第一个打印语句返回“05-15-17”
-第二个打印语句返回“2 5 1”
-第三个打印语句返回“2 5 1”
我很困惑,想知道是否有人知道发生了什么事。谢谢。
最佳答案
MONTH
、DAY_OF_MONTH
和 YEAR
是常量,它们不反射(reflect) Calendar
的状态,但为您提供与其交互的方式。我强烈建议您花时间阅读 JavaDocs更好地理解这些字段的作用以及如何使用它们。
但是,鉴于 Calendar
已被有效弃用,我强烈建议您花时间学习新的日期/时间类 - 请参阅 Date and Time Classes了解更多详情
关于java - 将文本解析为日历日期时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44034075/