java - 将文本解析为日历日期时出现错误

标签 java calendar

我已经阅读了很多过去的帖子,看起来我做的一切都是正确的,但日历由于某种原因错误地解析了字符串。本质上,我正在获取输入的日期并将其解析为日历日期。 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”

我很困惑,想知道是否有人知道发生了什么事。谢谢。

最佳答案

MONTHDAY_OF_MONTHYEAR 是常量,它们不反射(reflect) Calendar 的状态,但为您提供与其交互的方式。我强烈建议您花时间阅读 JavaDocs更好地理解这些字段的作用以及如何使用它们。

但是,鉴于 Calendar 已被有效弃用,我强烈建议您花时间学习新的日期/时间类 - 请参阅 Date and Time Classes了解更多详情

关于java - 将文本解析为日历日期时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44034075/

相关文章:

java - 安卓货币符号排序

java - 单击提交后填充 jframe

java - 是否有用于实现面包屑导航的任何 JSF 组件?

html - CSS 日历对齐方式

ios - 如何在 swift 3 中将日期范围转换为字符串?

calendar - 如何在 Ada 中获得自 unix epoch 以来的秒数?

Java获取当前插入行的自动递增数,用于另一个查询?

java - 在 Samsung Galaxy S 中添加 300 个联系人到组时出现 StringIndexOutOfBoundsException

java - Android Studio 中的 Google 日历 API

java - iCal4J 生成的 Outlook 无法识别 .ics 文件中的时区