我有一些代码使用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对象中。甚至可以这样做吗?
答案 0 :(得分:3)
java.sql.Date
没有格式。这只是个约会。
要将其转换为字符串,请使用设置了相关格式的SimpleDateFormatter
- 如果您确实需要toString
,则只需使用yyyy-MM-dd
。 (不幸的是,目前还不清楚你应该使用哪个时区 - java.sql.Date
在这方面的记录很少。我怀疑它会使用默认的系统时区。)
要创建具有给定日期的Calendar
对象,您可以使用:
Calendar calendar = Calendar.getInstance();
calendar.setTime(sqlDate);
同样,Calendar
也没有文本格式 - 它代表特定时区特定日历系统中的某个时间点,但不代表文本表示。
答案 1 :(得分:1)
Java Date
个对象(并注意java.sql.Date
a 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());
答案 2 :(得分:1)
System.out.println(new SimpleDateFormat("yyyy-MM-dd")
.format(Calendar.getInstance().getTime()));
答案 3 :(得分: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()));
}
}
请让我知道会发生什么!