2012-11-13 16 views
10

W programie Scala przeliczam datę na datownik. Obecnie robię to z:Konwertuj datę na datownik w Scala

val date = new java.util.Date() 
new java.sql.Timestamp(new org.joda.time.DateTime(date).getMillis) 

Czy istnieje lepszy sposób robienia tego? Odpowiednie są również odpowiedzi oparte na informacjach w języku Java.

Odpowiedz

14

Dlaczego nie jest tak proste, jak korzystanie z Date.getTime()?

new java.sql.Timestamp(date.getTime) 

Nie potrzebujesz do tego czasu Joda. Scala tu nie ma naprawdę znaczenia, chyba że trzeba niejawna konwersja:

//import once, use everywhere 
implicit def date2timestamp(date: java.util.Date) = 
    new java.sql.Timestamp(date.getTime) 

val date = new java.util.Date 

//conversion happens implicitly 
val timestamp: java.sql.Timestamp = date 
11

Jeśli nie chcesz nawet skonstruować obiekt Date można po prostu użyj tego:

new java.sql.Timestamp(System.currentTimeMillis()) 

Myślę byłoby to trochę bardziej wydajne niż użycie nowej daty(). Ale jeśli już masz obiekt daty, który chcesz uzyskać od tego czasu, będzie działać dla ciebie.

new java.sql.Timestamp(data.getTime())