0

我有一些代码使用 sql.date 对象来获取格式为:yyyy-MM-dd 的当前日期。我想将其类型转换为与 sql.date 具有相同格式的日历对象。

这是 sql.date 的代码:

java.util.Date now = new java.util.Date();

java.sql.Date sqlDate = new java.sql.Date( now.getTime() );

编辑:

我想知道如何将其放入日历对象中。甚至有可能做到这一点吗?

4

4 回答 4

3

Ajava.sql.Date没有格式。这只是一个约会。

要将其转换为字符串,请使用SimpleDateFormatter带有相关格式集的 a - 或者toString如果您确实需要就使用yyyy-MM-dd. (不幸的是,不清楚您应该使用哪个时区 -java.sql.Date在这方面的记录非常差。我怀疑它会使用默认的系统时区。)

要创建Calendar具有给定日期的对象,您可以使用:

Calendar calendar = Calendar.getInstance();
calendar.setTime(sqlDate);

同样, aCalendar也没有文本格式 - 它表示特定时区中特定日历系统中的时间点,但与文本表示无关。

于 2013-08-02T13:27:01.033 回答
1

JavaDate对象(注意a )没有“格式”。它们代表时间的瞬间。java.sql.Date java.util.Date

Calendar也没有“格式”。

你所要求的在java中没有意义。

考虑使用SimpleDateFormat将这些内容之一格式化为字符串:

String str = new SimpleDateFormat("yyyy-MM-dd").format(myDate);

或者如果您使用Calendar对象(不推荐):

String str = new SimpleDateFormat("yyyy-MM-dd").format(myCalendar.getTime()); 
于 2013-08-02T13:27:11.237 回答
1

使用SimpleDateFormat#format()

System.out.println(new SimpleDateFormat("yyyy-MM-dd")
                   .format(Calendar.getInstance().getTime()));
于 2013-08-02T13:30:08.677 回答
0

您可以使用以下代码段。

public class DateTest {

public static void main(String[] arg){

    Calendar calendar = Calendar.getInstance();
    //setting a valid date
    Date date = new Date(113,07,10);
    //prints the date as per format
    System.out.println("Date in YYYY-MM-DD : " +date);
    //sets the calendar with the date value in java.sql.Date instance
    calendar.setTime(date);
    //use simple date formatter to format the value in calendar instance
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println("Date formatted from Calendar instance : "+dateFormat.format(calendar.getTime()));
}

}

请让我知道会发生什么!

于 2013-08-02T13:45:39.083 回答