【问题标题】:Subtracting days in a Calendar object [duplicate]减去日历对象中的天数[重复]
【发布时间】:2010-04-12 16:26:18
【问题描述】:

可能重复:
Anyone know a simple way using java calendar to subtract X days to a date?

我需要在给定日期(givenDate)减去 365 天-

Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.DATE, -365);  

我说的对吗?

【问题讨论】:

    标签: java datetime calendar


    【解决方案1】:

    Calendar.DAY_OF_YEAR 是减去天数的正确方法

    您还可以使用

    减去一年(考虑闰年)
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(givenDate);
    calendar.add(Calendar.YEAR, -1);
    

    【讨论】:

    【解决方案2】:

    这是减去天数的正确方法。

    请注意,由于闰日,365 天并不总是等于一年。 calendar.add(Calendar.YEAR, -1) 会正确减去一年。

    您可能还想使用Joda Time-library 而不是java.util.Datejava.util.Calendar。 Joda Time 是一个更好的处理时间和日期的 API。

    【讨论】:

      【解决方案3】:

      我不认为它会有所不同,但我会使用 Calendar.DAY_OF_YEAR 作为字段。

      【讨论】:

        【解决方案4】:

        如果您尝试严格减去 365 天,那么是的,就可以了。但是,如果您尝试倒退数年,由于闰年,这可能行不通。

        【讨论】:

          【解决方案5】:

          查看Veyder-time。它是 java.util.Calendar 的一个简单而强大的替代方案,并且具有简单的方法来添加和减去天数和年数等。

          【讨论】:

            猜你喜欢
            • 2013-10-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-08-31
            • 2016-08-03
            • 1970-01-01
            • 2015-11-26
            • 1970-01-01
            相关资源
            最近更新 更多