Ben Giden web hizmeti için değerleri doldurma parçası olarak bir GregorianCalendar bir OffsetDateTime dönüştürme ediyorum. Sadece gerçek dönüşümü test edeceğimi düşündüm. Karşılaştırma gregorianCutover değerlendirmesinde başarısız equalto içindeNeden GregorianCalendar ve OffsetDateTime arasında dönüşüm başarısız oluyor?
@Test
public void testOffsetDateTimeToGregorianCalendar() {
// given the current gregorian utc time
GregorianCalendar expectedGregorianUtcNow = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
OffsetDateTime expectedUtcOffsetDateTime = OffsetDateTime.from(expectedGregorianUtcNow.toZonedDateTime());
// when converting to a GregorianCalendar
GregorianCalendar actualGregorianUtcNow = GregorianCalendar.from(expectedUtcOffsetDateTime.toZonedDateTime());
// then make sure we got the correct value
assertThat(actualGregorianUtcNow, equalTo(expectedGregorianUtcNow));
}
: -
Bu işlem, başarısız ve nedenini anlamıyorum burada test yöntemidir. Niye ya? Bu bir hata mı?
gerçek var gibi görünüyor: gregorianCutover = -9223372036854775808 ve beklenen vardır: gregorianCutover = -12219292800000
birim test çıkışı (gregorianCutover orada görünmüyor) 'de görülebileceği gibi diğer her şey doğrudur:
java.lang.AssertionError:
Expected:<java.util.GregorianCalendar[time=1458667828375,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2016,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=82,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=30,SECOND=28,MILLISECOND=375,ZONE_OFFSET=0,DST_OFFSET=0]>
but: was <java.util.GregorianCalendar[time=1458667828375,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2016,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=82,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=30,SECOND=28,MILLISECOND=375,ZONE_OFFSET=0,DST_OFFSET=0]>
Yanlış bir şey mi yaptım?
sayesinde ... ben Eğer JAXB oluşturulan bir web servisine entegre çalıştığınızda, oluşturulan DateTimeOffset fabrika bir GregorianCalendar ile vermenizi gerektirir çünkü uzak eşittir yönteminden kalmak, ancak API uzak durmak bir olasılık değildir edecek –