2016-07-18 4 views
1

withWeekOfWeekyear를 java.time으로 변환하려고합니다. weekWfkBasedYear와 비교하여 withWeekOfWeekyear와 다른 오프셋을 얻는 이유를 알아낼 수 없습니다.withWeekOfWeekyear가 왜 다른 오프셋을 제공합니까?

DateTime dateTimeWeek = new DateTime().withWeekOfWeekyear(1); 
    OffsetDateTime offsetDateTimeWeek = OffsetDateTime.now().with(WeekFields.ISO.weekOfWeekBasedYear(), 1); 

    DateTime dateTime = new DateTime(); 
    OffsetDateTime offsetDateTime = OffsetDateTime.now(); 

    System.out.println(dateTimeWeek); // 2016-01-04T12:20:50.981-05:00 
    System.out.println(offsetDateTimeWeek); // 2016-01-04T12:20:51.034-04:00 

    System.out.println(dateTime); // 2016-07-18T12:20:51.101-04:00 
    System.out.println(offsetDateTime); // 2016-07-18T12:20:51.101-04:00 

답변

1

org.joda.time.DateTime은 시간대를 인식합니다.

DateTimetime zone에 대해 필드를 계산합니다.

java.time.OffsetDateTime 일광 절약 시간 조정하지 않습니다 즉, 하지 시간대 알고있다.

OffsetDateTime은 로컬 날짜 - 시간을 얻을 수있는 UTC/그리니치로부터 오프셋을 추가합니다. ZonedDateTime은 전체 시간대 규칙을 추가합니다.

java.time.ZonedDateTime 시간대 알고, 그래서 당신이 것을 사용하는 경우, 당신은 동일한 결과를 얻을 수 있습니다.

ZonedDateTime은 시간대와 함께 날짜 시간을 변경할 수없는 표현입니다.