我有一些代碼使用sql.date對象來獲取格式爲yyyy-MM-dd的當前日期。我想將它轉換爲與sql.date具有相同格式的Calendar對象。Typecast sql.date到日曆
下面是sql.date代碼:
java.util.Date now = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(now.getTime());
編輯:
我想知道如何把這個在日曆對象。這甚至有可能嗎?
我有一些代碼使用sql.date對象來獲取格式爲yyyy-MM-dd的當前日期。我想將它轉換爲與sql.date具有相同格式的Calendar對象。Typecast sql.date到日曆
下面是sql.date代碼:
java.util.Date now = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(now.getTime());
編輯:
我想知道如何把這個在日曆對象。這甚至有可能嗎?
A java.sql.Date
不是有格式。這只是一個約會。
要將其轉換爲字符串,請使用設置了相關格式的SimpleDateFormatter
- 或者只使用toString
,如果您確實需要yyyy-MM-dd
。 (遺憾的是,目前還不清楚哪個時區,你應該使用 - 。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()));
所以我應該完全用日曆替換日期? –
是的,不需要單獨構建'java.util.Date'。你可以從'Calendar#getTime()'得到它。 –
您可以使用以下snipp等。
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()));
}
}
請讓我知道會發生什麼!
這工作謝謝你。我不明白日期格式和日期是如何工作的。 –