2016-06-09 75 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);       
}