Boa tarde pessoal!
Estou quebrando a cabeça para fazer uma operação com horas e ainda não sei ao certo o que fazer.
Tenho um tempo inicial e um final no formado yyyyMMddHHmmssSSS.
Preciso obter a diferença entre esse tempo e exibir no mesmo formato.
Por exemplo:
Inicial - 20111120204635000 (Sun Nov 20 20:46:35 BRST 2011)
Final - 20111120204709144 (Sun Nov 20 20:47:09 BRST 2011)
Fazendo o seguinte código
SimpleDateFormat startDateSF = new SimpleDateFormat("yyyyMMddHHmmssSSS");
SimpleDateFormat endDateSF = new SimpleDateFormat("yyyyMMddHHmmssSSS");
SimpleDateFormat returnDateSF = new SimpleDateFormat("HHmmssSSS");
Date start = new Date(startDateSF.parse("20111120204635000").getTime());
Date end = new Date(endDateSF.parse("20111120204709144 ").getTime());
long millisec = end.getTime() - start.getTime();
Date returnDate = new Date(millisec);
return returnDateSF.format(returnDate);
O retorno fica - Wed Dec 31 21:00:34 BRT 1969 ou formatado em HHmmssSSS - 210034144
Pq apresenta 21 hs?
Tem algum jeito de eu apresentar somente essa diferença? Ex.: 00:00:34144
[quote]Letter Date or Time Component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day in week Text Tuesday; Tue
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800[/quote]
[code]public class Program
{
public static void main(String[] args)
{
// Create a SimpleDateFormat object.
String pattern = “dd-MMM-yyyy HH:mm:ss.SSS”;
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern(pattern);
// Parse a sample date starting at position 0.
String sampleDateStr = "04-Jul-1776 22:00:00.000";
ParsePosition pos = new ParsePosition(0);
Date sampleDate = sdf.parse(sampleDateStr, pos);
// Print out the date using the supplied pattern.
System.out.println("The pattern being used is " +
sdf.toPattern());
System.out.println("A sample date looks like " +
sdf.format(sampleDate));
}