java.util.Date (타임 스탬프)에서 시간을 얻는 방법은 무엇입니까?java.time을 사용하여 타임 스탬프에서 getHourOfDay하는 방법?
joda.time에서는 getHourOfDay()를 사용합니다.
java.util.Date (타임 스탬프)에서 시간을 얻는 방법은 무엇입니까?java.time을 사용하여 타임 스탬프에서 getHourOfDay하는 방법?
joda.time에서는 getHourOfDay()를 사용합니다.
여러 가지 해결책이 있습니다. java.time
에서 Java 8 클래스를 사용하려면 Date
을 DateTime 클래스 중 하나로 변환해야합니다. 다음은 당신이 다음 시간을 얻을 수있는 곳에 ZonedDateTime
에 Date
을 변환 할 수 있습니다 :
Date date = new Date();
// Convert to java 8 ZonedDateTime
Date date = new Date();
final ZonedDateTime dateTime = date.toInstant()
.atZone(ZoneId.systemDefault());
// Get the hour
int hour = dateTime.getHour();
아주 자세한 당신은 발견했지만 이것에 대한 간단한 이유는 Date
가 sort of an Instant
것을 그대로이름에도 불구하고
java.util.Date
은 "날짜"가 아닌 타임 라인의 순간을 나타냅니다. 개체에 저장된 실제 데이터는 1970-01-01T00 : 00Z (1970 GMT/UTC 시작일 자정) 이후로 긴 밀리 초입니다.
또 다른 접근법은 단순히 Calendar
인스턴스에서 필드를 가져 오는 것입니다.
final Calendar instance = Calendar.getInstance();
instance.setTime(date);
final int hourOfDay = instance.get(Calendar.HOUR_OF_DAY);
'ZonedDateTime'을'LocalDateTime'으로 변환하지만,'getHour()'도'ZonedDateTime'에서 사용할 수 있습니다. 그래서 추가 변환은 필요 없습니다. – bowmore
@bowmore, 좋은 전화 응답이 업데이트되었습니다. – wassgren