728x90
TimeUnit
java.util.concurrent
패키지에는 Enum 자료형의 TimeUnit
이 있습니다.
TimeUnit 종류는 다음과 같습니다.
- DAYS
- HOURS
- MINUTES
- MILLISECONDS
- MICROSECONDS
- NANOSECONDS
TimeUnit은 시간 데이터를 가지고 있지 않기 때문에 입력으로 시간을 나타내는 값을 넣어줘야 합니다.
public enum TimeUnit {
/**
* Time unit representing one thousandth of a microsecond
*/
NANOSECONDS {
...
},
/**
* Time unit representing one thousandth of a millisecond
*/
MICROSECONDS {
...
},
/**
* Time unit representing one thousandth of a second
*/
MILLISECONDS {
...
},
/**
* Time unit representing one second
*/
SECONDS {
...
},
/**
* Time unit representing sixty seconds
*/
MINUTES {
...
},
/**
* Time unit representing sixty minutes
*/
HOURS {
...
},
/**
* Time unit representing twenty four hours
*/
DAYS {
...
};
}
TiemUnit을 사용하여 시간 단위 변환
TimeUnit
을 사용하면 다양한 단위로 날짜를 쉽게 표현할 수 있습니다. 시간 단위를 변환할 때, "1 milliseconds * 1000 = 1 seconds
"와 같은 코드를 작성할 필요가 없습니다.
이러한 코드는 시간이 흘러서 다시 보게 되면 헷갈릴 수 있습니다. 그렇기 때문에 명시적으로 표현하기 위해서는 TimeUnit
으로 시간 단위를 변환하는 것이 좋습니다.
// SECONDS -> MILLISECONDS
long result = TimeUnit.MILLISECONDS.convert(1L, TimeUnit.SECONDS);
Assert.assertEquals(1000, result);
// MILLISECONDS -> SECONDS
long result2 = TimeUnit.SECONDS.convert(100000L, TimeUnit.MILLISECONDS);
Assert.assertEquals(100, result2);
// DAY -> SECONDS
long result3 = TimeUnit.SECONDS.convert(1L, TimeUnit.DAYS);
Assert.assertEquals(86400, result3);
'Java' 카테고리의 다른 글
Effective Java 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2019.04.04 |
---|---|
Effective Java 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 (0) | 2019.04.04 |
Java 배열 원소 문자열 출력, toString() vs deepToString() (0) | 2019.04.04 |
Integer 클래스 valueOf, parseInt 메서드 차이점 (0) | 2019.04.04 |
JDBC execute, executeQuery, executeUpdate 메서드 특징 (0) | 2019.04.04 |
댓글