2016-11-08 4 views
2

저는 이것이 아마도 어리석은 질문이라고 생각합니다. 그러나 다른 곳에서 로컬 날짜 시간을 빼는 방법이 있는지 또는 그렇지 않은 경우 localDateTime을 날짜 시간으로 변환하는 방법이 있는지 궁금합니다. 거기에서 빼기?Java LocalDateTime bar에서 LocalDateTime foo를 뺍니다.

나는 기록 foo는의 시작과 내가 자바 오히려 새로운 오전

(또한 푸의 끝) 레코드 표시 줄의 시작 사이의 날짜 시간 차이를 해결 할 수 있어야하고, 단순함을 위해 초 단위로 변환하지 않고 대략 동일한 레이아웃으로 유지할 수 있기를 원합니다.

LocalDateTime을 더하거나 뺄 때 옵션이 아닌 경우, 나는 dateTime에 다음을 사용하여 그들을 뺄 수 있습니다 :

Period diff = new Period(start, end); 

데이터의 목적 때문에이 작업을 수행하려면 날짜와 시간을 모두 유지해야하며 앞서 언급했듯이이 작업을 상당히 간단하게 유지하여 초 단위로 날짜를 변환 할 필요가 없습니다. .

내 문제는 실제로 받아 들일 수있는 형식으로되어 있습니다. 나는 자바와 객체 지향에 대해 오히려 처음이에요. 그러니 겉으로보기에 단순한 질문에 대해서는 제게 조롱하지 마시기 바랍니다.

+1

여기에 이미 답변되었습니다. http://stackoverflow.com/questions/25747499/java-8-calculate-difference-between-two-localdatetime – JynXXedRabbitFoot

+0

이 질문을 통해 Joda-Time 수업을 언급 한 경우, 명시 적으로. 또한 Joda-Time 프로젝트는 현재 유지 관리 모드에 있으며 java.time 클래스로의 마이그레이션을 권장합니다. –

답변

3

왜 당신은 단순히 매개 변수 유형으로 직접 LocalDateTime이 방법을 사용하지 마십시오

LocalDateTime start = new LocalDateTime(2016, 10, 4, 17, 45); 
LocalDateTime end = LocalDateTime.now(); 
PeriodType ptype = PeriodType.yearMonthDayTime(); 
Period diff = new Period(start, end, ptype); 

참조 API of Joda-Time. DateTime으로 전송할 필요가 없습니다.

4

문제는 Joda 타임에 관한

감사합니다,

조니는하지 자바 (8)에 대한 질문은 정말 그것에 대해 명확하지 않았다. 어쨌든이 대답은 Java 8에 대한 것이므로 질문에 직접 응답하지 않습니다. 비록 누군가가 Java 8을 대신 사용하고자한다면 적절한 대답이라고 생각합니다.

java.time.Duration 클래스를 확인해야합니다.

LocalDateTime from = ... ; 
LocalDateTime to = ... ; 
Duration duration = Duration.between(from, to); 

당신이 정말 Period를 취득 할 경우, 오히려 쉽게 여전히 :

LocalDateTime from = ... ; 
LocalDateTime to = ... ; 
Period period = Period.between(from.toLocalDate(), to.toLocalDate()); 
+0

OP는 분명히 Java-8-time-API가 아닌 Joda-Time을 사용합니다. 기간 생성자의 사용법을 참조하십시오. –

+0

감사하지만, POD를 계속 반환합니다. 이는 toLocalDate와 동일한 날짜로 인해 발생합니다. 그 시간과는 반대로? – Jonnyr612

+0

@ Jonnyr612 Joda-Time 또는 다른 API와 달리 Java-8 (java.time-package)은 날짜 및 시간 단위로 구성된 기간을 함께 관리하지 않습니다. –

관련 문제