[英]Typecast sql.date to calendar
我有一些代码使用sql.date对象以yyyy-MM-dd格式获取当前日期。 我想将其类型转换为与sql.date格式相同的Calendar对象。
这是sql.date的代码:
java.util.Date now = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date( now.getTime() );
编辑:
我想知道如何将其放在Calendar对象中。 甚至有可能这样做吗?
一个java.sql.Date
不具备的格式。 这只是个约会。
要将其转换为字符串,请使用具有相关格式集的SimpleDateFormatter
或如果确实需要yyyy-MM-dd
则只需使用toString
。 (不幸的是,目前尚不清楚应使用哪个时区-在这方面java.sql.Date
文档非常少。我怀疑它将使用默认的系统时区。)
要创建具有给定日期的Calendar
对象,您可以使用:
Calendar calendar = Calendar.getInstance();
calendar.setTime(sqlDate);
同样, Calendar
也不具有文本格式-它表示特定日历系统在特定时区的某个时间点,但是与文本表示无关。
Java Date
对象(请注意, java.sql.Date
是 java.util.Date
)没有“格式”。 它们代表时刻。
Calendar
也没有“格式”。
您要的内容在Java中没有意义。
考虑使用SimpleDateFormat
将其中之一格式化为String:
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()));
}
}
请让我知道会发生什么!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.