2012-11-13 28 views
10

在斯卡拉,我将日期转换为时间戳。我目前正在这样做:在斯卡拉转换日期到时间戳

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

是否有一个这样做的一种更加轻松的方式? Java知情答复也是相关的。

回答

14

为什么不像使用Date.getTime()那么简单?

new java.sql.Timestamp(date.getTime) 

你不需要乔达时间。 Scala是不是真的与此有关,除非你需要的隐式转换:

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

如果你不想甚至可以构造一个Date对象,你可以简单地使用这样的:

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

我想这比使用新的Date()更有效率。但是,如果你已经有了一个日期对象,你想从中得到日期将适用于你。

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