已棄用的java.sql.Date
構造函數更爲直觀 - Date(int year, int month, int day)
。但是現在我們需要使用新的java.sql.Date(長日期)。使用具有長整型值的java.sql.Date構造函數
我無法找到關於如何編寫實際的長日期的文檔。除了使用java.util.Date().getTime()
之外,還有其他的方法可以在java中構建sql日期嗎?
已棄用的java.sql.Date
構造函數更爲直觀 - Date(int year, int month, int day)
。但是現在我們需要使用新的java.sql.Date(長日期)。使用具有長整型值的java.sql.Date構造函數
我無法找到關於如何編寫實際的長日期的文檔。除了使用java.util.Date().getTime()
之外,還有其他的方法可以在java中構建sql日期嗎?
日期(年,月,日)不推薦使用的原因是因爲它的語言環境是無知的。如果您只想使用標準Java類,則標準方法是Calendar.getInstance,然後使用生成的Calendar的.set方法設置年,月和日。然而,正如我在3年的StackOverflow中學到的,更好的方法是使用Joda。
另一種方法是使用DateFormat將字符串解析爲日期,並調用getTime()。 –
好的,我已經下載Joda Time的jar。基於查找一些關於喬達時間和SQL的指南,如這裏http://stackoverflow.com/questions/1071800/how-to-use-jodatime-with-java-sql-timestamp,我明白如何使用構造函數的作品。 – harryo
但鏈接中的示例僅提供從JodaTime到時間戳的轉換。如果我想將JodaTime轉換爲java.sql.Date,以便通過java類將其插入到我的數據庫中,該怎麼辦? – harryo
我認爲jdk替代(年,月,日)構造函數將使用Calendar類,這有點麻煩,因爲你必須獨立設置字段。
但是,正如Paul所說,如果您可以將jar添加到您的項目中,使用Joda Time是一個很好的選擇。
哎呀,我的帖子太慢了 –
這是從年,月和日創建java.sql.Date的快捷方法。它格式化日期字符串並使用Date.valueOf(String)。
/**
* Create a java.sql.Date from from year, month, and day of the month.
*/
private java.sql.Date createSqlDate(int year, int month, int day) {
// Create a date string with leading zeros for month and day.
String dateString = String.format("%d-%02d-%02d", year, month, day);
return java.sql.Date.valueOf(dateString);
}
時間讓Jon Skeet提起喬達時間吧? –