我有一些代码使用 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() );
编辑:
我想知道如何将其放入日历对象中。甚至有可能做到这一点吗?
Ajava.sql.Date
没有格式。这只是一个约会。
要将其转换为字符串,请使用SimpleDateFormatter
带有相关格式集的 a - 或者toString
如果您确实需要就使用yyyy-MM-dd
. (不幸的是,不清楚您应该使用哪个时区 -java.sql.Date
在这方面的记录非常差。我怀疑它会使用默认的系统时区。)
要创建Calendar
具有给定日期的对象,您可以使用:
Calendar calendar = Calendar.getInstance();
calendar.setTime(sqlDate);
同样, aCalendar
也没有文本格式 - 它表示特定时区中特定日历系统中的时间点,但与文本表示无关。
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());
System.out.println(new SimpleDateFormat("yyyy-MM-dd")
.format(Calendar.getInstance().getTime()));
您可以使用以下代码段。
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()));
}
}
请让我知道会发生什么!