2012-11-13 44 views
10

Trong Scala, tôi đang chuyển đổi Ngày thành Dấu thời gian. Tôi hiện đang thực hiện việc này với:Chuyển đổi Ngày thành Dấu thời gian trong Scala

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

Có cách nào để làm điều này không? Các câu trả lời được thông báo bằng Java cũng sẽ có liên quan.

Trả lời

14

Tại sao không đơn giản như sử dụng Date.getTime()?

new java.sql.Timestamp(date.getTime) 

Bạn không cần thời gian Joda cho việc này. Scala là không thực sự liên quan ở đây, trừ khi bạn cần một chuyển đổi ngầm:

//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

Nếu bạn không muốn thậm chí xây dựng một đối tượng ngày bạn chỉ có thể sử dụng này:

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

Tôi sẽ nghĩ điều này sẽ có hiệu quả hơn một chút so với sử dụng Date() mới. Nhưng nếu bạn đã có một đối tượng ngày bạn muốn nhận được ngày từ này sẽ làm việc cho bạn.

new java.sql.Timestamp(data.getTime()) 
Các vấn đề liên quan