月份减去一个(不是因为它基于0)

 手机用户2502872401 发布于 2023-02-11 18:01

当我在一个代表1970年1月1日的日期设置月份,然后立即返回月份时,它会被一个人关闭.

import java.util.Date;

@Test
public void monthShouldBeExpectedValue() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date(0));

    int expectedMonth = Calendar.JUNE;
    calendar.set(Calendar.MONTH, expectedMonth);
    int actualMonth = calendar.get(Calendar.MONTH);

    assertThat(actualMonth, equalTo(expectedMonth)); // test fails: expected 5 got 6
}

如果我改变这一行

calendar.setTime(new Date(0));

calendar.setTime(new Date());  // use 'today' instead of 1/1/1970

然后测试通过.谁知道为什么?

编辑

日期的印刷版本是:

new Date(0):         Wed Dec 31 19:00:00 EST 1969
date from calendar:  Tue Jul 01 19:00:00 EDT 1969

我正在运行一个旧的JDK:1.6.0_30-b12(64位)

我在东部标准时间.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有