2009-12-14 46 views
2

我是新來joda-time,我沒有找到任何地方的例子來做一些簡單的事情。從java.sql.Time創建jodatime LocalDate

我想打一個對象,其中保存在數據庫中,從表中讀取一個時間值(java.sql.Time - 例如"18:30:00")我不關心時區,所以我認爲我需要LocalDate。但問題是我無法基於該對象創建LocalDate對象。

我試過沒成功LocalDate.fromDateFields(),DateTimeParser.parseInto(),DateTimeParser.parseDateTime()。編輯: 我應該使用LocalTime。 這些工作:

java.sql.Time time = Time.valueOf("18:30:00"); 
LocalTime lt1 = LocalTime.fromDateFields(time); 
LocalTime lt2 = new LocalTime(time); 
+0

'org.joda.time.LocalDate'代表一個日期,'java.sql.Time'代表一個時間。你期望從中得到什麼有意義的轉換? – skaffman

+0

我看到'YearMonthDay'和'TimeOfDay'是你不需要所有日期時間字段(部分)的類。但是當我想使用它們時,不贊成使用它,並且它表示使用'LocalDate'和'LocalTime'。現在我看到我應該使用'LocalTime'。但它不適用於此。 –

+0

一個人怎麼會去其他人。我試圖將fom LocalTime轉換爲sql時間,但我注意到了LocalTime返回整數的getMillis()*函數。我想通過DateTime無效穿梭它。 –

回答

4

the documentation,你應該能夠直接傳遞一個java.util.Date作爲唯一的構造函數的參數構建一個LOCALDATE的。由於中java.sql.Time延伸java.util.Date,你應該能夠

final LocalDate ld = new LocalDate(mySqlTime); 

這個工作對我來說:

System.out.println(new LocalDate(Time.valueOf("18:30:00"))); 

在另一方面,它不是做一件有意義的事,因爲你會一直得到1970年1月1日。但我想你知道你在做什麼。

+0

我已經試過'LocalDate ld = new LocalDate(Time.valueOf(「18:30:00」));'它給出了'java.lang.UnsupportedOperationException' –

+0

它適用於我。 –

+0

我應該使用'LocalTime'。我編輯了我的問題。 –