반응형
문자열에 마침표
이 질문에 이미 답변이 있습니다.
- JodaTime 기간을 문자열 2 답변으로 변환
Java와 함께 Joda-Time 라이브러리를 사용하고 있습니다. 기간 개체를 "x 일, x 시간, x 분"형식의 문자열로 바꾸는 데 어려움이 있습니다.
이러한 Period 객체는 먼저 시간 (초)을 추가하여 생성됩니다 (초 단위로 XML에 직렬화 된 후 다시 생성됨). 단순히 getHours () 등의 메서드를 사용하면 얻는 것은 모두 0이고 getSeconds를 사용한 총 시간 (초)입니다.
Joda가 날짜, 시간 등과 같은 각 필드의 초를 어떻게 계산하도록 할 수 있습니까?
기간을 정규화해야합니다. 총 초 수로 구성하면 그 값이 유일한 값이기 때문입니다. 정규화하면 총 일, 분, 초 등으로 나뉩니다.
ripper234에 의해 편집-TL ; DR 버전 추가 :PeriodFormat.getDefault().print(period)
예를 들면 :
public static void main(String[] args) {
PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()
.appendDays()
.appendSuffix(" day", " days")
.appendSeparator(" and ")
.appendMinutes()
.appendSuffix(" minute", " minutes")
.appendSeparator(" and ")
.appendSeconds()
.appendSuffix(" second", " seconds")
.toFormatter();
Period period = new Period(72, 24, 12, 0);
System.out.println(daysHoursMinutes.print(period));
System.out.println(daysHoursMinutes.print(period.normalizedStandard()));
}
다음을 인쇄합니다.
24 분 12 초
3 일 24 분 12 초
따라서 정규화되지 않은 기간에 대한 출력은 단순히 시간 수를 무시한다는 것을 알 수 있습니다 (72 시간을 3 일로 변환하지 않음).
대부분의 경우에 적합한 기본 포맷터를 사용할 수도 있습니다.
Period period = new Period(startDate, endDate);
System.out.println(PeriodFormat.getDefault().print(period))
Period period = new Period();
// prints 00:00:00
System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
period = period.plusSeconds(60 * 60 * 12);
// prints 00:00:43200
System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
period = period.normalizedStandard();
// prints 12:00:00
System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()
.appendDays()
**.appendSuffix(" day", " days")
.appendSeparator(" and ")
.appendMinutes()
.appendSuffix(" minute", " minutes")**
.appendSeparator(" and ")
.appendSeconds()
.appendSuffix(" second", " seconds")
.toFormatter();
시간을 놓치고 있으니까요. 며칠 후 몇 시간을 추가하면 문제가 해결됩니다.
참조 URL : https://stackoverflow.com/questions/1440557/period-to-string
반응형
'code' 카테고리의 다른 글
google.setOnLoadCallback with jQuery $ (document) .ready (), 혼합해도 되나요? (0) | 2020.12.29 |
---|---|
위임, 구성 및 집계 구분 (Java OO 디자인) (0) | 2020.12.29 |
루비 스타일 : 중첩 된 해시 요소가 있는지 확인하는 방법 (0) | 2020.12.29 |
cglib에 대한 대안이 있습니까? (0) | 2020.12.29 |
무효 유효한 코드를 반환합니까? (0) | 2020.12.29 |