开发者社区> 问答> 正文

java.sql.Date无法打印正确的日期

以下代码打印出“ 3920-06-02”,但应该是“ 2020-05-02”。我做错了什么?

import java.sql.Date
// ...

public static void main(String[] args) {
    Date May0220 = new Date(2020,  5,  2);
    System.out.println(May0220.toString());
}

我想使用java.sql而不是java.util。

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 22:59:48 548 0
2 条回答
写回答
取消 提交回答
  • sql包中的date 和 Java中 util包下的date是b不一样的,需要进行转换。

    2020-03-29 13:07:05
    赞同 展开评论 打赏
  • 好像java.sql.Date; 使用从1900年开始的年份,并为月份使用类似索引的数组,因此它比实际值少了一个。

    这是我为获得您期望的结果所做的。

    public static void main(String[] args) 
    {
        Date May0220 = new Date(2020 - 1900, 5 - 1, 2);
        System.out.println(May0220+"");
    }
    

    更一般的形式是

    {
        int year = 2020;
        int month = 5;
        Date date = new Date(year - 1900, month - 1, 2);
        System.out.println(date+"");
    }
    

    祝好运!

    回答来源:Stack Overflow

    2020-03-25 23:00:18
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载