Groovy - 来自分钟的时间戳

时间:2015-06-23 15:26:56

标签: oracle grails groovy timestamp

我有一个数组或时间/值返回到如下数组:

[0, 60]

以分钟为单位的时间,0 = 12:00 am.m,60 = 1:00 am。我想将这些存储在oracle数据库中作为时间戳。如何在groovy中将分钟转换为时间戳?

编辑:*日期可以是任意的,我只需要时间部分用于我的目的。 编辑:*对于上面的例子,我需要两个时间戳可能类似于此:

1/1/1970 12:00:00.000000 AM // for 0
1/1/1970 1:00:00.000000 AM // for 60

编辑:

到目前为止我可以得到以下内容:

TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
def date = new Date(0)

给了我:

Thu Jan 01 00:00:00 UTC 1970

那么现在如何根据分钟数设置时间?

1 个答案:

答案 0 :(得分:1)

我假设你想使用当前日偏移量和时间戳给出的分钟数。

由于新的日期或时间戳将初始化为当前时间和日期,您可以使用它并使用数组中的值覆盖分钟字段。值60和更高将自动延续到小时,天等等。这是一种方法:

def times = [0, 60]
def dates = times.collect { new Date().clearTime().copyWith(minute: it) }
def timestamps = dates.collect { new java.sql.Timestamp(it.time) }
println timestamps
// output: [2015-06-23 00:00:00.0, 2015-06-23 01:00:00.0]

在groovy 2.2.0中添加了copyWith方法。在旧版本中,您可以使用以下内容:

def d = new Date().clearTime()
d.minutes = 60