2016-04-23 115 views
0

我要添加日期甲酸(H:MM:SS:SSS).I没以下各项添加编号,以日期(H:MM:SS:SSS)格式

Date time1; 
    Date time2; 
    String result1; 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat("H:mm:ss:SSS"); 
    time1 = new Date(0,0,0,0,0,5); 
    time2=new Date(0,0,0,0,0,5); 

的TIME1的输出是0:00:05:000。现在我想添加这两个时间,并使0:00:10:000。但time1+time2是不可能的。有没有办法做到这一点?

+0

这真的不要紧,你如何格式化你的'日期对象的输出,他们仍然是日期(当然,它们代表了一个瞬间,更准确)。那么,究竟应该添加两个“日期”呢?你的问题没有意义。 – Seelenvirtuose

+0

我需要格式化的输出。这不是关于添加两个日期。它是关于添加这种格式的两个数字。 –

回答

3

您可以使用日历您的要求:

Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(new Date()); 
    calendar.set(Calendar.HOUR_OF_DAY,0); 
    calendar.set(Calendar.MINUTE,0); 
    calendar.set(Calendar.SECOND,5); 
    calendar.set(Calendar.MILLISECOND,0); 

    System.out.println(formatter.format(calendar.getTime())); 

    Calendar another = Calendar.getInstance(); 
    another.setTime(calendar.getTime()); 
    another.set(Calendar.HOUR_OF_DAY,0); 
    another.set(Calendar.MINUTE,0); 
    another.set(Calendar.SECOND,calendar.get(Calendar.SECOND)+5); 
    another.set(Calendar.MILLISECOND,0); 

    System.out.println(formatter.format(another.getTime())); 

OUTPUT:

0:00:05:000 
0:00:10:000 

这里是Java文档的Calendar

+0

你的回答是正确的根据我的问题。实际上我想用一个会增加5秒时间的循环。在你的方式中,你添加了第二个5。这对我来说很好,我可以在整个日期加5,而不仅仅是秒。谢谢 –

+0

好的。为此,您只需计算需要添加的秒数,然后使用日历添加秒数。 – Unknown

+0

我试过循环,没有额外的计算第二是必要的。只需用“second + i”替换“second + 5”表达式,它会自动处理分钟和小时。谢啦。 –

1

new Date(time1.getTime() + time2.getTime())应该这样做。

getTime()返回自1970年1月1日00:00:00 GMT以来的毫秒数。
new Date(0, 0, 0, 0, 0, 0)等于1970年1月1日,格林威治标准时间00:00:00。所以基本上只有time1.getTime()time2.getTime()中的5秒的毫秒数,所以你可以将它们求和并将其转换回Date对象。