2016-06-09 104 views
0

我有這麼簡單的問題。雖然我花了幾個小時,但是我找不到解決問題的辦法,但我確信有一個我不知道的小竅門。簡單日期格式

if(selectJob.getType() == 'G'){ 
    long tardy = Long.parseLong(offSetValue); 
    Timestamp gleichzeitig = new Timestamp(dateBegin.getTime()+ tardy); 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    String simulDate = simpleDateFormat.format(gleichzeitig); 
    atnajsonJobLine.add(simulDate);       
} 

tardy號碼和date_begin是通過GUI從用戶處獲取的。儘管在調試模式下,我看到我設法在開始日期中添加了遲到的數字,但在控制檯中它只是寫入開始日期。

//預期輸出:

BEGINDATE:13時10分00秒 遲緩:10

simulDate:十三點10分10秒

//實際: 13時10分00秒

有人可以幫我嗎? 高級謝謝。

+1

您正在添加10毫秒......您似乎預計它意味着10秒。 –

+1

@limonik我建議你看看命名約定(「date_begin」) – ScriptKiddy

+0

@ScriptKiddy我編輯過 – limonik

回答

2

Timestamp基於毫秒。

添加10將導致相同的秒數(和更多10毫秒)。

如果您打印毫秒,您可以看到。

嘗試添加10 * 1000,而不是10

1

你加入10毫秒。試試這個 - >

if(selectJob.getType() == 'G'){ 
    long tardy = Long.parseLong(OffSetValue); 
    Timestamp gleichzeitig = new Timestamp(date_begin.getTime() + tardy * 1000); 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    String SimulDate = simpleDateFormat.format(gleichzeitig); 
    atnajsonJobLine.add(SimulDate);       
}