首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将java.sql.Date对象转换为GregorianCalendar?

如何将java.sql.Date对象转换为GregorianCalendar?
EN

Stack Overflow用户
提问于 2012-02-03 00:24:06
回答 4查看 58.1K关注 0票数 21

我以为我能够使用接受年、月和日的构造函数创建一个GregorianCalendar,但是我不能可靠地从java.sql.Date类的实例中获取这些字段。不推荐使用从java.sql.Date获取这些值的方法,下面的代码说明了无法使用它们的原因:

import java.sql.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DateTester {

    public static void main(String[] args) {
        Date date = Date.valueOf("2011-12-25");
        System.out.println("Year: " + date.getYear());
        System.out.println("Month: " + date.getMonth());
        System.out.println("Day: " + date.getDate());
        System.out.println(date);

        Calendar cal = new GregorianCalendar(date.getYear(), date.getMonth(), date.getDate());
        System.out.println(cal.getTime());
    }
}

以下是输出,显示不推荐使用的Date getYear()getMonth()方法返回的月份和年份不正确

年份:111年

月份: 11

日期: 25

2011-12-25

清华-12- 25 00:00:00 EST 111

由于我不能使用上面尝试的构造函数,并且没有只接受DateGregorianCalendar构造函数,因此如何将java.sql.Date对象转换为GregorianCalendar

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-03 00:25:29

您必须在两个步骤中完成此操作。首先使用默认构造函数创建一个GregorianCalendar,然后使用(命名混乱的) setTime方法设置日期。

import java.sql.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DateTester {

    public static void main(String[] args) {
        Date date = Date.valueOf("2011-12-25");
        System.out.println(date);

        Calendar cal = new GregorianCalendar();
        cal.setTime(date);
        System.out.println(cal.getTime());
    }
}

下面是输出:

2011-12-25

美国东部标准时间2011 12月25日00:00:00

票数 35
EN

Stack Overflow用户

发布于 2012-02-03 00:28:15

我在回忆,但你试过了吗

Calendar cal = GregorianCalendar.getInstance();
cal.setTime(rs.getDate());
票数 4
EN

Stack Overflow用户

发布于 2012-02-03 00:32:01

尝尝这个。

import java.sql.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DateTester {

    public static void main(String[] args) {
        Date date = Date.valueOf("2011-12-25");
        System.out.println(date);

        Calendar cal = new GregorianCalendar();
        cal.setTime(date);
        System.out.println(cal.getTime());
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9115897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档