### Question:
CustomDateTimeJsonFieldDecoder implements JsonFieldDecoder { @Override public FieldValueProvider decode(JsonNode value) { return new CustomDateTimeJsonValueProvider(value, columnHandle, formatter); } CustomDateTimeJsonFieldDecoder(DecoderColumnHandle columnHandle); @Override FieldValueProvider decode(JsonNode value);  }### Answer:
@Test public void testDecode() { timestampTester.assertDecodedAs("\"02/2018/19 9:20:11\"", TIMESTAMP_MILLIS, 1_519_032_011_000_000L); timestampWithTimeZoneTester.assertDecodedAs("\"02/2018/19 11:20:11 +02:00\"", TIMESTAMP_MILLIS, 1_519_032_011_000_000L); timestampTester.assertDecodedAs("\"02/2018/19 9:20:11\"", TIMESTAMP_WITH_TIME_ZONE, packDateTimeWithZone(1519032011000L, UTC_KEY)); timestampWithTimeZoneTester.assertDecodedAs("\"02/2018/19 11:20:11 +02:00\"", TIMESTAMP_WITH_TIME_ZONE, packDateTimeWithZone(1519032011000L, getTimeZoneKeyForOffset(120))); timeTester.assertDecodedAs("\"15:13:18\"", TIME, 47_718_000_000_000_000L); timeJustHourTester.assertDecodedAs("\"15\"", TIME, 54_000_000_000_000_000L); timeJustHourTester.assertDecodedAs("15", TIME, 54_000_000_000_000_000L); timeTester.assertDecodedAs("\"15:13:18\"", TIME_WITH_TIME_ZONE, packTimeWithTimeZone(47_718_000_000_000L, 0)); timeWTZTester.assertDecodedAs("\"15:13:18.123-04:00\"", TIME_WITH_TIME_ZONE, packTimeWithTimeZone(54_798_123_000_000L, -4 * 60)); timeWTZTester.assertDecodedAs("\"15:13:18.123+08:00\"", TIME_WITH_TIME_ZONE, packTimeWithTimeZone(54_798_123_000_000L, 8 * 60)); dateTester.assertDecodedAs("\"02/2018/11\"", DATE, 17573); }