2015-06-23 41 views
0

時間戳我有一個數組或次/值回來是在象一個數組:Groovy的 - 從幾分鐘

[0, 60] 

哪些是在幾分鐘的時間,0 =上午12時00分,60 = 1:00我想將它們作爲時間戳存儲在oracle數據庫中。如何將時間分鐘轉換爲時間戳?

編輯:*日期可以是任意的,我只需要時間部分爲我的目的。 編輯:*對於上面的例子,我需要兩個時間戳,也許與此類似:

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 

那麼現在如何設置基於某個值的時間以分鐘爲單位?

+0

在哪一天?時間戳有一天不是嗎?還有一個時區? –

+0

@tim_yates查看編輯 –

回答

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] 

copyWith方法被添加到groovy 2.2.0中。在舊版本中,您可以使用類似這樣的內容:

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

時間[0] = 0對應於單次時間,上午12:00 時間[1] = 60對應於上午1:00的單獨時間 –

+0

同樣你的回答給我以下錯誤: 沒有方法的簽名:java.util.Date.copyWith()適用於參數類型:(java.util.LinkedHashMap)values:[[hourOfDay:0,minute:60]]。 Stacktrace如下: 消息:沒有方法的簽名:java.util.Date.copyWith()適用於參數類型:(java.util.LinkedHashMap)values:[[hourOfDay:0,minute:60]] –

+0

好吧,我已經用更多的信息更新了答案。 – ataylor

相關問題