public TimestampLocalTZWritable evaluate(TimestampLocalTZWritable t) { if (t == null) { return null; } final ZonedDateTime localZDT = t.getTimestampTZ().getZonedDateTime(); // default final long originalTimestampUTC = localZDT.withZoneSameLocal(ZoneOffset.UTC) .toInstant().toEpochMilli(); // default -> utc final long newTimestampUTC = granularity.truncate(originalTimestampUTC); // utc final ZonedDateTime newLocalZDT = ZonedDateTime.of( LocalDateTime.ofInstant(Instant.ofEpochMilli(newTimestampUTC), ZoneOffset.UTC), localZDT.getZone()); // utc -> default resultTSLTZ.set(new TimestampTZ(newLocalZDT)); return resultTSLTZ; }
public static SqlTime sqlTimeOf(LocalTime time, Session session) { if (session.toConnectorSession().isLegacyTimestamp()) { long millisUtc = LocalDate.ofEpochDay(0) .atTime(time) .atZone(UTC) .withZoneSameLocal(ZoneId.of(session.getTimeZoneKey().getId())) .toInstant() .toEpochMilli(); return new SqlTime(millisUtc, session.getTimeZoneKey()); } return new SqlTime(NANOSECONDS.toMillis(time.toNanoOfDay())); }
result = result.withZoneSameLocal( timezone() );
if ( timezone != NO_VALUE ) truncatedZDT = truncatedZDT.withZoneSameLocal( timezoneOf( timezone ) );
public ZonedDateTime withZoneSameLocal(ZoneId zone) { return dt.withZoneSameLocal(zone); }
@Test @FrozenClockRule.TimeZone( {"Europe/Stockholm", "America/Los_Angeles"} ) public void shouldCopyDateTime() { assertEqualTemporal( datetime( ZonedDateTime.now( clock ) ), builder( clock ).add( "datetime", datetime( ZonedDateTime.now( clock ) ) ).build() ); assertEqualTemporal( datetime( ZonedDateTime.now( clock ) ), builder( clock ) .add( "datetime", localDateTime( LocalDateTime.now( clock ) ) ) .build() ); assertEqualTemporal( datetime( ZonedDateTime.now( clock ).withZoneSameLocal( ZoneId.of( "America/New_York" ) ) ), builder( clock ) .add( "datetime", localDateTime( LocalDateTime.now( clock ) ) ) .add( "timezone", stringValue( "America/New_York" ) ) .build() ); }
private static ZonedDateTime parse(String value) { return ZonedDateTime.parse(value).withZoneSameLocal(ZoneId.of("UTC")); }
private long parseDateTime(String value, ZoneId timeZone, boolean roundUpIfNoTime) { DateFormatter formatter = roundUpIfNoTime ? this.roundUpFormatter : this.formatter; try { if (timeZone == null) { return DateFormatters.toZonedDateTime(formatter.parse(value)).toInstant().toEpochMilli(); } else { TemporalAccessor accessor = formatter.parse(value); ZoneId zoneId = TemporalQueries.zone().queryFrom(accessor); if (zoneId != null) { timeZone = zoneId; } return DateFormatters.toZonedDateTime(accessor).withZoneSameLocal(timeZone).toInstant().toEpochMilli(); } } catch (IllegalArgumentException | DateTimeException e) { throw new ElasticsearchParseException("failed to parse date field [{}]: [{}]", e, value, e.getMessage()); } } }
ZonedDateTime zdtMontreal = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ); ZonedDateTime zdtAuckland = zdtMontreal.withZoneSameLocal( ZoneId.of( "Pacific/Auckland" ) );
public ZonedDateTime withZoneSameLocal(ZoneId zone) { return dt.withZoneSameLocal(zone); }
public static ZonedDateTime inParis(ZonedDateTime dt) { return dt.withZoneSameLocal(ZoneId.of("Europe/Paris")); }
public static ZonedDateTime inMontreal(ZonedDateTime dt) { return dt.withZoneSameLocal(ZoneId.of("America/Montreal")); }
ZonedDateTime dateTime = ZonedDateTime.parse("2016-10-20T11:34:57+02:00[Europe/Zurich]"); // UTC + 2 long millisEurope = dateTime.toInstant().toEpochMilli(); System.out.println(millisEurope); // 1476956097000 dateTime = dateTime.withZoneSameLocal(ZoneId.of("America/Los_Angeles")); // UTC - 7 long millisAmerica = dateTime.toInstant().toEpochMilli(); System.out.println(millisAmerica); // 1476988497000 // The difference between UTC + 2 and UTC - 7 == -9 System.out.println((millisEurope - millisAmerica) / 1000 / 60 / 60);
@Override protected ZonedDateTime readFieldFromObject(ZonedDateTime obj, ObjectReader reader) { if(reader.name().equals(ZONE_ID_FIELD_NAME)){ String zoneIdValue = reader.valueAsString(); ZoneId zoneId = ZoneId.of(zoneIdValue); return obj.withZoneSameLocal(zoneId); } else { return super.readFieldFromObject(obj, reader); } }
@Override public ZonedDateTime readFieldsFromArray(Supplier<ZonedDateTime> instanceProvider, ObjectReader reader) { ZonedDateTime zt = super.readFieldsFromArray(instanceProvider, reader); reader.next(); String zoneId = reader.valueAsString(); return zt.withZoneSameLocal(ZoneId.of(zoneId)); }
public static SqlTime sqlTimeOf(LocalTime time, Session session) { if (session.toConnectorSession().isLegacyTimestamp()) { long millisUtc = LocalDate.ofEpochDay(0) .atTime(time) .atZone(UTC) .withZoneSameLocal(ZoneId.of(session.getTimeZoneKey().getId())) .toInstant() .toEpochMilli(); return new SqlTime(millisUtc, session.getTimeZoneKey()); } return new SqlTime(NANOSECONDS.toMillis(time.toNanoOfDay())); }
public static SqlTime sqlTimeOf(LocalTime time, Session session) { if (session.toConnectorSession().isLegacyTimestamp()) { long millisUtc = LocalDate.ofEpochDay(0) .atTime(time) .atZone(UTC) .withZoneSameLocal(ZoneId.of(session.getTimeZoneKey().getId())) .toInstant() .toEpochMilli(); return new SqlTime(millisUtc, session.getTimeZoneKey()); } return new SqlTime(NANOSECONDS.toMillis(time.toNanoOfDay())); }
result = result.withZoneSameLocal(ZoneOffset.ofTotalSeconds(accessor.get(ChronoField.OFFSET_SECONDS)));
@DataProvider(name = "date") public synchronized Object[][] dateData() { if (dateCache == null) { dateCache = new Object[][]{ new Object[]{20L, null, null, null}, new Object[]{21L, LocalDateTime.now(), OffsetDateTime.now(), ZonedDateTime.now()}, new Object[]{22L, LocalDateTime.now(), OffsetDateTime.now().withOffsetSameInstant(ZoneOffset.UTC), ZonedDateTime.now().withZoneSameInstant(ZoneId.of("Z"))}, new Object[]{23L, LocalDateTime.now(), OffsetDateTime.now().withOffsetSameInstant(ZoneOffset.of("+14:00")), ZonedDateTime.now().withZoneSameInstant(ZoneId.of("Z"))}, new Object[]{24L, LocalDateTime.now(), OffsetDateTime.now().withOffsetSameLocal(ZoneOffset.MAX), ZonedDateTime.now().withZoneSameLocal(ZoneId.of("GMT+13"))}, new Object[]{25L, LocalDateTime.now(), OffsetDateTime.now().withOffsetSameInstant(ZoneOffset.MIN), ZonedDateTime.now().withZoneSameInstant(ZoneId.of("GMT-12"))} }; } return dateCache; } }
@Test public void addPriceWithValidityPeriod() throws Exception { final PriceDraft expectedPrice = PriceDraft.of(MoneyImpl.of(123, EUR)) .withValidFrom(SphereTestUtils.now()) .withValidUntil(SphereTestUtils.now().withZoneSameLocal(ZoneOffset.UTC).plusHours(2)); testAddPrice(expectedPrice); }