java - 使用 Java 中的 Calendar 类进行日期操作

标签 java

请引用下面的简单代码。我想从当月和 2015 年 2 月的输出期望值中扣除一个月。

    Calendar today = Calendar.getInstance();
    System.out.println(today.getTime().toString());

    today.set(Calendar.MONTH, -1);
    Date date = today.getTime();
    System.out.println(date.toString());

程序输出如下。我没有看到预期的二月,而是显示 2014 年 12 月。

2015 年美国东部时间 3 月 31 日星期二 11:48:34

2014 年美国东部时间 12 月 31 日星期三 11:48:34

感谢您的时间和帮助。

最佳答案

您将月份数字设置为 -1,即“前一年的 12 月”。您想要添加 -1 个月:

today.add(Calendar.MONTH, -1);

如果可以的话,我强烈建议您使用 Joda Time 或 Java 8 的 java.time 包 - 两者都是比 Date 更好的 API。/日历

关于java - 使用 Java 中的 Calendar 类进行日期操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372979/

相关文章:

java - Android 中如何暂停后台运行的应用程序?

java - map 中键的类型不匹配:预期的org.apache.hadoop.io.Text,当我使用.txt文件作为输入时,收到的org.apache.hadoop.io.LongWritable

java - Eclipse 上 java 中的 @Subscribe 和 @Produce 关键字

Java编译错误: Cannot find symbol Priority Queue

java - 使用 MergeSort 处理用户输入

java - 哈希码是在调用 hashcode() 方法时生成的

java - 如何为二叉搜索树中存储的字符串编写查找前缀和查找单词方法?

写入 Access DB 时发生 Java 错误

java - 计数器无法结束循环

java - Swing:组件背景的问题