如果我在一个日期中将小时,分钟和秒设置为0,则该日减少一个..

时间:2012-07-31 12:06:08

标签: java android date

首先,我知道我可以使用Calendar,但我想了解这个问题并学会解决它。

我有Date当前日期。我想将小时,分钟和秒设置为0.我使用此代码执行此操作:

        current_date.setHours(0);
        current_date.setMinutes(0);
        current_date.setSeconds(0);

出现了问题,因为如果我这样做,那么这一天会减少1,例如,如果今天是31,那么这一天会被设置为30。

为什么呢?如何通过Date解决(不使用Calendar,我想学习如何通过艰难的方式解决这个问题)。感谢

2 个答案:

答案 0 :(得分:2)

看看这些方法的实现。他们使用格里高利历。错误可能来自该交互。

注意:自JDK 1.1 see

以来,所有已弃用的方法都已弃用

答案 1 :(得分:2)

猜猜......

我想这与时区有关。

当您将HMS设置为0时,您不是根据您的时区设置它们,而是根据UTC(不是100%确定,但是......)。所以结果日期不是:

0:0:0 YOUR LOCAL

0:0:0 GMT
如果你在美国,那就是前一天。

尝试将分钟设置为-yourDate.getTimezoneOffset()(如果不起作用,请尝试使用正值)。