2013-05-17 3 views
1

HOURS를 추가하는 방법 : MINUTES : DateTime 필드의 SECONDS 값은 얼마입니까?H : M : S 값을 DateTime 필드에 입력하십시오.

예를 들어, HH : MM : SECONDS 값이 포함 된 문자열 값으로 (합계)를 더하기 위해 dimetime 값이 포함 된 필드에 입력하고 싶습니다.

ReportDate 추가 할 2013-01-01 10:00:00 값입니다 : 120:34:29

그래서해야 될 : 2013-01-06 10:34:00 내가 함께 노력

:

GregorianCalendar c = new GregorianCalendar(); 
c.setTime(reportDate); 
String toAdd='120:34:29'; 
c.add(Calendar.HOUR, toAdd); 
java.util.Date targetFinish = c.getTime(); 
SystemOutPrintln(targetFinish.toString()); 

그래서 문제 행이 얼마나 이러한 값을 추가하는 c.add(Calendar.HOUR, toAdd); ? 나는 그레고리력으로 그것을하고 싶다. 그리고 SysOut에 새로운 가치를 부여하고 싶습니다. 감사합니다

+1

한 단어 - Joda 시간 -> http://joda-time.sourceforge.net - 귀하의 질문에 답변하지 않지만 나중에 감사 할 것입니다 :-) –

+0

텍스트를시, 분, 초로 구문 분석하고 개별적으로 추가해야합니다. 알 수없는 형식의 임의의 문자열을 사용한다고 기대할 수는 없습니다. –

+1

@RonDahlgren 또는 이제 JodaTime을 기반으로 Java 8 구현을 전환하십시오. Java 7 AFAIK 용 백 포트가 있습니다. –

답변

2
GregorianCalendar c = new GregorianCalendar(); 
c.setTime(reportDate); 

String[] toAdd = "120:34:29".split(":"); 

int hours = Integer.parseInt(toAdd[0]); 
int mins = Integer.parseInt(toAdd[1]); 
int secs = Integer.parseInt(toAdd[2]); 

c.add(Calendar.SECOND, secs); 
c.add(Calendar.MINUTE, mins); 
c.add(Calendar.HOUR, hours); 

java.util.Date targetFinish = c.getTime(); 

SystemOutPrintln(targetFinish.toString()); 
+0

나는 그걸 거꾸로해야한다고 생각하니? 시간 분? 또는 아닙니다? –

+0

어떤 식 으로든 수행하십시오. 결과는 동일합니다. –

2

당신이 좋아하는 시간, 분, 초에 텍스트를 분석하고 추가 할 수 있습니다 -

String[] time ="120:34:29".split(":"); 

c.add(Calendar.HOUR, Integer.parseInt(time[0])); 
c.add(Calendar.MINUTE, Integer.parseInt(time[1])); 
c.add(Calendar.SECOND, Integer.parseInt(time[2])); 
+0

안녕하세요, 고맙습니다하지만 먼저 두 가지 오류가 있습니다. GregorianCalendar 형식의 add (int, int) 메서드는 인수 (int, String)에 적용 할 수 없습니다 –

+0

초 : c.add (Calendar.SECOND ...) shouldn 두 번째 대신에 이것이 아니겠습니까? 이것은 내 두 번째 오류입니다 –

+0

의견을 주셔서 감사합니다, 내 대답을 업데이 트하십시오. :) –

관련 문제