Java Code Examples for java.sql.Timestamp#toInstant()
The following examples show how to use
java.sql.Timestamp#toInstant() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TimestampTests.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
@Test public void test45() throws Exception { Timestamp ts1 = Timestamp.valueOf("1961-08-30 00:00:00"); Instant instant = ts1.toInstant(); Timestamp ts2 = Timestamp.from(instant); assertTrue(ts1.equals(ts2), "Error ts1 != ts2"); }
Example 2
Source File: TimestampTests.java From TencentKona-8 with GNU General Public License v2.0 | 5 votes |
@Test public void test45() throws Exception { Timestamp ts1 = Timestamp.valueOf("1961-08-30 00:00:00"); Instant instant = ts1.toInstant(); Timestamp ts2 = Timestamp.from(instant); assertTrue(ts1.equals(ts2), "Error ts1 != ts2"); }
Example 3
Source File: InstantTypeHandler.java From mybatis-types with MIT License | 5 votes |
@Override public Instant getNullableResult(ResultSet rs, int columnIndex) throws SQLException { Timestamp ts = rs.getTimestamp(columnIndex); if (ts != null) { return ts.toInstant(); } return null; }
Example 4
Source File: TimestampTests.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
@Test public void test45() throws Exception { Timestamp ts1 = Timestamp.valueOf("1961-08-30 00:00:00"); Instant instant = ts1.toInstant(); Timestamp ts2 = Timestamp.from(instant); assertTrue(ts1.equals(ts2), "Error ts1 != ts2"); }
Example 5
Source File: ZonedDateTimeConverter.java From requery with Apache License 2.0 | 5 votes |
@Override public ZonedDateTime convertToMapped(Class<? extends ZonedDateTime> type, Timestamp value) { if (value == null) { return null; } Instant instant = value.toInstant(); return ZonedDateTime.ofInstant(instant, ZoneOffset.systemDefault()); }
Example 6
Source File: TimestampTests.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
@Test public void test45() throws Exception { Timestamp ts1 = Timestamp.valueOf("1961-08-30 00:00:00"); Instant instant = ts1.toInstant(); Timestamp ts2 = Timestamp.from(instant); assertTrue(ts1.equals(ts2), "Error ts1 != ts2"); }
Example 7
Source File: InstantTypeDescriptor.java From sakai with Educational Community License v2.0 | 5 votes |
@Override public <T> Instant wrap(T value, WrapperOptions options) { if (value == null) { return null; } if (Instant.class.isInstance(value)) { return (Instant) value; } if (Timestamp.class.isInstance(value)) { final Timestamp ts = (Timestamp) value; return ts.toInstant(); } if (Long.class.isInstance(value)) { return Instant.ofEpochMilli((Long) value); } if (Calendar.class.isInstance(value)) { final Calendar calendar = (Calendar) value; return ZonedDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId()).toInstant(); } if (java.util.Date.class.isInstance(value)) { return ((java.util.Date) value).toInstant(); } throw unknownWrap(value.getClass()); }
Example 8
Source File: InstantTypeHandler.java From mybatis-types with MIT License | 5 votes |
@Override public Instant getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { Timestamp ts = cs.getTimestamp(columnIndex); if (ts != null) { return ts.toInstant(); } return null; }
Example 9
Source File: InstantJavaDescriptor.java From lams with GNU General Public License v2.0 | 5 votes |
@Override public <X> Instant wrap(X value, WrapperOptions options) { if ( value == null ) { return null; } if ( Instant.class.isInstance( value ) ) { return (Instant) value; } if ( Timestamp.class.isInstance( value ) ) { final Timestamp ts = (Timestamp) value; return ts.toInstant(); } if ( Long.class.isInstance( value ) ) { return Instant.ofEpochMilli( (Long) value ); } if ( Calendar.class.isInstance( value ) ) { final Calendar calendar = (Calendar) value; return ZonedDateTime.ofInstant( calendar.toInstant(), calendar.getTimeZone().toZoneId() ).toInstant(); } if ( java.util.Date.class.isInstance( value ) ) { return ( (java.util.Date) value ).toInstant(); } throw unknownWrap( value.getClass() ); }
Example 10
Source File: InstantTypeDescriptor.java From sakai with Educational Community License v2.0 | 5 votes |
@Override public <T> Instant wrap(T value, WrapperOptions options) { if (value == null) { return null; } if (Instant.class.isInstance(value)) { return (Instant) value; } if (Timestamp.class.isInstance(value)) { final Timestamp ts = (Timestamp) value; return ts.toInstant(); } if (Long.class.isInstance(value)) { return Instant.ofEpochMilli((Long) value); } if (Calendar.class.isInstance(value)) { final Calendar calendar = (Calendar) value; return ZonedDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId()).toInstant(); } if (java.util.Date.class.isInstance(value)) { return ((java.util.Date) value).toInstant(); } throw unknownWrap(value.getClass()); }
Example 11
Source File: TimestampTests.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
@Test public void test45() throws Exception { Timestamp ts1 = Timestamp.valueOf("1961-08-30 00:00:00"); Instant instant = ts1.toInstant(); Timestamp ts2 = Timestamp.from(instant); assertTrue(ts1.equals(ts2), "Error ts1 != ts2"); }
Example 12
Source File: InstantConverter.java From Showcase with Apache License 2.0 | 4 votes |
@Override public Instant convertToEntityAttribute(Timestamp timestamp) { return timestamp == null ? null : timestamp.toInstant(); }
Example 13
Source File: InstantTimeJPAConverter.java From patient-batch-loader with GNU General Public License v3.0 | 4 votes |
@Override public Instant convertToEntityAttribute(Timestamp timestamp) { return (timestamp == null ? null : timestamp.toInstant()); }
Example 14
Source File: JavatimeTest.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Throwable { int N = 10000; long t1970 = new java.util.Date(70, 0, 01).getTime(); Random r = new Random(); for (int i = 0; i < N; i++) { int days = r.nextInt(50) * 365 + r.nextInt(365); long secs = t1970 + days * 86400 + r.nextInt(86400); int nanos = r.nextInt(NANOS_PER_SECOND); int nanos_ms = nanos / 1000000 * 1000000; // millis precision long millis = secs * 1000 + r.nextInt(1000); LocalDateTime ldt = LocalDateTime.ofEpochSecond(secs, nanos, ZoneOffset.UTC); LocalDateTime ldt_ms = LocalDateTime.ofEpochSecond(secs, nanos_ms, ZoneOffset.UTC); Instant inst = Instant.ofEpochSecond(secs, nanos); Instant inst_ms = Instant.ofEpochSecond(secs, nanos_ms); //System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); /////////// Timestamp //////////////////////////////// Timestamp ta = new Timestamp(millis); ta.setNanos(nanos); if (!isEqual(ta.toLocalDateTime(), ta)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ta.toLocalDateTime(), ta); throw new RuntimeException("FAILED: j.s.ts -> ldt"); } if (!isEqual(ldt, Timestamp.valueOf(ldt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ldt, Timestamp.valueOf(ldt)); throw new RuntimeException("FAILED: ldt -> j.s.ts"); } Instant inst0 = ta.toInstant(); if (ta.getTime() != inst0.toEpochMilli() || ta.getNanos() != inst0.getNano() || !ta.equals(Timestamp.from(inst0))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: j.s.ts -> instant -> j.s.ts"); } inst = Instant.ofEpochSecond(secs, nanos); Timestamp ta0 = Timestamp.from(inst); if (ta0.getTime() != inst.toEpochMilli() || ta0.getNanos() != inst.getNano() || !inst.equals(ta0.toInstant())) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: instant -> timestamp -> instant"); } ////////// java.sql.Date ///////////////////////////// // j.s.d/t uses j.u.d.equals() !!!!!!!! java.sql.Date jsd = new java.sql.Date(millis); if (!isEqual(jsd.toLocalDate(), jsd)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jsd.toLocalDate(), jsd); throw new RuntimeException("FAILED: j.s.d -> ld"); } LocalDate ld = ldt.toLocalDate(); if (!isEqual(ld, java.sql.Date.valueOf(ld))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ld, java.sql.Date.valueOf(ld)); throw new RuntimeException("FAILED: ld -> j.s.d"); } ////////// java.sql.Time ///////////////////////////// java.sql.Time jst = new java.sql.Time(millis); if (!isEqual(jst.toLocalTime(), jst)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jst.toLocalTime(), jst); throw new RuntimeException("FAILED: j.s.t -> lt"); } // millis precision LocalTime lt = ldt_ms.toLocalTime(); if (!isEqual(lt, java.sql.Time.valueOf(lt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(lt, java.sql.Time.valueOf(lt)); throw new RuntimeException("FAILED: lt -> j.s.t"); } } System.out.println("Passed!"); }
Example 15
Source File: JavatimeTest.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Throwable { int N = 10000; long t1970 = new java.util.Date(70, 0, 01).getTime(); Random r = new Random(); for (int i = 0; i < N; i++) { int days = r.nextInt(50) * 365 + r.nextInt(365); long secs = t1970 + days * 86400 + r.nextInt(86400); int nanos = r.nextInt(NANOS_PER_SECOND); int nanos_ms = nanos / 1000000 * 1000000; // millis precision long millis = secs * 1000 + r.nextInt(1000); LocalDateTime ldt = LocalDateTime.ofEpochSecond(secs, nanos, ZoneOffset.UTC); LocalDateTime ldt_ms = LocalDateTime.ofEpochSecond(secs, nanos_ms, ZoneOffset.UTC); Instant inst = Instant.ofEpochSecond(secs, nanos); Instant inst_ms = Instant.ofEpochSecond(secs, nanos_ms); //System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); /////////// Timestamp //////////////////////////////// Timestamp ta = new Timestamp(millis); ta.setNanos(nanos); if (!isEqual(ta.toLocalDateTime(), ta)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ta.toLocalDateTime(), ta); throw new RuntimeException("FAILED: j.s.ts -> ldt"); } if (!isEqual(ldt, Timestamp.valueOf(ldt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ldt, Timestamp.valueOf(ldt)); throw new RuntimeException("FAILED: ldt -> j.s.ts"); } Instant inst0 = ta.toInstant(); if (ta.getTime() != inst0.toEpochMilli() || ta.getNanos() != inst0.getNano() || !ta.equals(Timestamp.from(inst0))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: j.s.ts -> instant -> j.s.ts"); } inst = Instant.ofEpochSecond(secs, nanos); Timestamp ta0 = Timestamp.from(inst); if (ta0.getTime() != inst.toEpochMilli() || ta0.getNanos() != inst.getNano() || !inst.equals(ta0.toInstant())) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: instant -> timestamp -> instant"); } ////////// java.sql.Date ///////////////////////////// // j.s.d/t uses j.u.d.equals() !!!!!!!! java.sql.Date jsd = new java.sql.Date(millis); if (!isEqual(jsd.toLocalDate(), jsd)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jsd.toLocalDate(), jsd); throw new RuntimeException("FAILED: j.s.d -> ld"); } LocalDate ld = ldt.toLocalDate(); if (!isEqual(ld, java.sql.Date.valueOf(ld))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ld, java.sql.Date.valueOf(ld)); throw new RuntimeException("FAILED: ld -> j.s.d"); } ////////// java.sql.Time ///////////////////////////// java.sql.Time jst = new java.sql.Time(millis); if (!isEqual(jst.toLocalTime(), jst)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jst.toLocalTime(), jst); throw new RuntimeException("FAILED: j.s.t -> lt"); } // millis precision LocalTime lt = ldt_ms.toLocalTime(); if (!isEqual(lt, java.sql.Time.valueOf(lt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(lt, java.sql.Time.valueOf(lt)); throw new RuntimeException("FAILED: lt -> j.s.t"); } } System.out.println("Passed!"); }
Example 16
Source File: JavatimeTest.java From openjdk-jdk8u with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Throwable { int N = 10000; long t1970 = new java.util.Date(70, 0, 01).getTime(); Random r = new Random(); for (int i = 0; i < N; i++) { int days = r.nextInt(50) * 365 + r.nextInt(365); long secs = t1970 + days * 86400 + r.nextInt(86400); int nanos = r.nextInt(NANOS_PER_SECOND); int nanos_ms = nanos / 1000000 * 1000000; // millis precision long millis = secs * 1000 + r.nextInt(1000); LocalDateTime ldt = LocalDateTime.ofEpochSecond(secs, nanos, ZoneOffset.UTC); LocalDateTime ldt_ms = LocalDateTime.ofEpochSecond(secs, nanos_ms, ZoneOffset.UTC); Instant inst = Instant.ofEpochSecond(secs, nanos); Instant inst_ms = Instant.ofEpochSecond(secs, nanos_ms); //System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); /////////// Timestamp //////////////////////////////// Timestamp ta = new Timestamp(millis); ta.setNanos(nanos); if (!isEqual(ta.toLocalDateTime(), ta)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ta.toLocalDateTime(), ta); throw new RuntimeException("FAILED: j.s.ts -> ldt"); } if (!isEqual(ldt, Timestamp.valueOf(ldt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ldt, Timestamp.valueOf(ldt)); throw new RuntimeException("FAILED: ldt -> j.s.ts"); } Instant inst0 = ta.toInstant(); if (ta.getTime() != inst0.toEpochMilli() || ta.getNanos() != inst0.getNano() || !ta.equals(Timestamp.from(inst0))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: j.s.ts -> instant -> j.s.ts"); } inst = Instant.ofEpochSecond(secs, nanos); Timestamp ta0 = Timestamp.from(inst); if (ta0.getTime() != inst.toEpochMilli() || ta0.getNanos() != inst.getNano() || !inst.equals(ta0.toInstant())) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: instant -> timestamp -> instant"); } ////////// java.sql.Date ///////////////////////////// // j.s.d/t uses j.u.d.equals() !!!!!!!! java.sql.Date jsd = new java.sql.Date(millis); if (!isEqual(jsd.toLocalDate(), jsd)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jsd.toLocalDate(), jsd); throw new RuntimeException("FAILED: j.s.d -> ld"); } LocalDate ld = ldt.toLocalDate(); if (!isEqual(ld, java.sql.Date.valueOf(ld))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ld, java.sql.Date.valueOf(ld)); throw new RuntimeException("FAILED: ld -> j.s.d"); } ////////// java.sql.Time ///////////////////////////// java.sql.Time jst = new java.sql.Time(millis); if (!isEqual(jst.toLocalTime(), jst)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jst.toLocalTime(), jst); throw new RuntimeException("FAILED: j.s.t -> lt"); } // millis precision LocalTime lt = ldt_ms.toLocalTime(); if (!isEqual(lt, java.sql.Time.valueOf(lt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(lt, java.sql.Time.valueOf(lt)); throw new RuntimeException("FAILED: lt -> j.s.t"); } } System.out.println("Passed!"); }
Example 17
Source File: JdbcUtil.java From datacollector with Apache License 2.0 | 4 votes |
private static Map<String, String> getMinMaxOffsetValueHelper( String minMaxQuery, DatabaseVendor vendor, Connection connection, String schema, String tableName, QuoteChar quoteChar, Collection<String> offsetColumnNames ) throws SQLException { Map<String, String> minMaxOffsetValues = new HashMap<>(); final String qualifiedTableName = TableContextUtil.getQuotedQualifiedTableName( schema, tableName, quoteChar.getQuoteCharacter() ); for (String offsetColumn : offsetColumnNames) { final String qualifiedOffsetColumn = TableContextUtil.getQuotedObjectName(offsetColumn, quoteChar.getQuoteCharacter()); final String minMaxOffsetQuery = String.format(minMaxQuery, qualifiedOffsetColumn, qualifiedTableName); LOG.debug("Issuing {} offset query: {}", minMaxQuery.equals(MIN_OFFSET_VALUE_QUERY) ? "MINIMUM" : "MAXIMUM", minMaxOffsetQuery); try ( Statement st = connection.createStatement(); ResultSet rs = st.executeQuery(minMaxOffsetQuery) ) { if (rs.next()) { String minMaxValue = null; final int colType = rs.getMetaData().getColumnType(MIN_MAX_OFFSET_VALUE_QUERY_RESULT_SET_INDEX); switch (vendor) { case ORACLE: if(TableContextUtil.VENDOR_PARTITIONABLE_TYPES.get(DatabaseVendor.ORACLE).contains(colType)) { switch (colType) { case TableContextUtil.TYPE_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE: case TableContextUtil.TYPE_ORACLE_TIMESTAMP_WITH_TIME_ZONE: OffsetDateTime offsetDateTime = rs.getObject(MIN_MAX_OFFSET_VALUE_QUERY_RESULT_SET_INDEX, OffsetDateTime.class); if(offsetDateTime != null) { minMaxValue = offsetDateTime.toZonedDateTime().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); } break; default: throw new IllegalStateException(Utils.format("Unexpected type: {}", colType)); } } break; case SQL_SERVER: if(TableContextUtil.VENDOR_PARTITIONABLE_TYPES.get(DatabaseVendor.SQL_SERVER).contains(colType)) { if (colType == TableContextUtil.TYPE_SQL_SERVER_DATETIMEOFFSET) { DateTimeOffset dateTimeOffset = rs.getObject(MIN_MAX_OFFSET_VALUE_QUERY_RESULT_SET_INDEX, DateTimeOffset.class); if (dateTimeOffset != null) { minMaxValue = dateTimeOffset.getOffsetDateTime().toZonedDateTime().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); } } } break; } if(minMaxValue == null) { switch (colType) { case Types.DATE: java.sql.Date date = rs.getDate(MIN_MAX_OFFSET_VALUE_QUERY_RESULT_SET_INDEX); if (date != null) { minMaxValue = String.valueOf( getEpochMillisFromSqlDate(date) ); } break; case Types.TIME: java.sql.Time time = rs.getTime(MIN_MAX_OFFSET_VALUE_QUERY_RESULT_SET_INDEX); if (time != null) { minMaxValue = String.valueOf( getEpochMillisFromSqlTime(time) ); } break; case Types.TIMESTAMP: Timestamp timestamp = rs.getTimestamp(MIN_MAX_OFFSET_VALUE_QUERY_RESULT_SET_INDEX); if (timestamp != null) { final Instant instant = timestamp.toInstant(); minMaxValue = String.valueOf(instant.toEpochMilli()); } break; default: minMaxValue = rs.getString(MIN_MAX_OFFSET_VALUE_QUERY_RESULT_SET_INDEX); break; } } if (minMaxValue != null) { minMaxOffsetValues.put(offsetColumn, minMaxValue); } } else { LOG.warn("Unable to get minimum offset value using query {}; result set had no rows", minMaxOffsetQuery); } } } return minMaxOffsetValues; }
Example 18
Source File: JavatimeTest.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Throwable { int N = 10000; long t1970 = new java.util.Date(70, 0, 01).getTime(); Random r = new Random(); for (int i = 0; i < N; i++) { int days = r.nextInt(50) * 365 + r.nextInt(365); long secs = t1970 + days * 86400 + r.nextInt(86400); int nanos = r.nextInt(NANOS_PER_SECOND); int nanos_ms = nanos / 1000000 * 1000000; // millis precision long millis = secs * 1000 + r.nextInt(1000); LocalDateTime ldt = LocalDateTime.ofEpochSecond(secs, nanos, ZoneOffset.UTC); LocalDateTime ldt_ms = LocalDateTime.ofEpochSecond(secs, nanos_ms, ZoneOffset.UTC); Instant inst = Instant.ofEpochSecond(secs, nanos); Instant inst_ms = Instant.ofEpochSecond(secs, nanos_ms); //System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); /////////// Timestamp //////////////////////////////// Timestamp ta = new Timestamp(millis); ta.setNanos(nanos); if (!isEqual(ta.toLocalDateTime(), ta)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ta.toLocalDateTime(), ta); throw new RuntimeException("FAILED: j.s.ts -> ldt"); } if (!isEqual(ldt, Timestamp.valueOf(ldt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ldt, Timestamp.valueOf(ldt)); throw new RuntimeException("FAILED: ldt -> j.s.ts"); } Instant inst0 = ta.toInstant(); if (ta.getTime() != inst0.toEpochMilli() || ta.getNanos() != inst0.getNano() || !ta.equals(Timestamp.from(inst0))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: j.s.ts -> instant -> j.s.ts"); } inst = Instant.ofEpochSecond(secs, nanos); Timestamp ta0 = Timestamp.from(inst); if (ta0.getTime() != inst.toEpochMilli() || ta0.getNanos() != inst.getNano() || !inst.equals(ta0.toInstant())) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: instant -> timestamp -> instant"); } ////////// java.sql.Date ///////////////////////////// // j.s.d/t uses j.u.d.equals() !!!!!!!! java.sql.Date jsd = new java.sql.Date(millis); if (!isEqual(jsd.toLocalDate(), jsd)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jsd.toLocalDate(), jsd); throw new RuntimeException("FAILED: j.s.d -> ld"); } LocalDate ld = ldt.toLocalDate(); if (!isEqual(ld, java.sql.Date.valueOf(ld))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ld, java.sql.Date.valueOf(ld)); throw new RuntimeException("FAILED: ld -> j.s.d"); } ////////// java.sql.Time ///////////////////////////// java.sql.Time jst = new java.sql.Time(millis); if (!isEqual(jst.toLocalTime(), jst)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jst.toLocalTime(), jst); throw new RuntimeException("FAILED: j.s.t -> lt"); } // millis precision LocalTime lt = ldt_ms.toLocalTime(); if (!isEqual(lt, java.sql.Time.valueOf(lt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(lt, java.sql.Time.valueOf(lt)); throw new RuntimeException("FAILED: lt -> j.s.t"); } } System.out.println("Passed!"); }
Example 19
Source File: JavatimeTest.java From TencentKona-8 with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Throwable { int N = 10000; long t1970 = new java.util.Date(70, 0, 01).getTime(); Random r = new Random(); for (int i = 0; i < N; i++) { int days = r.nextInt(50) * 365 + r.nextInt(365); long secs = t1970 + days * 86400 + r.nextInt(86400); int nanos = r.nextInt(NANOS_PER_SECOND); int nanos_ms = nanos / 1000000 * 1000000; // millis precision long millis = secs * 1000 + r.nextInt(1000); LocalDateTime ldt = LocalDateTime.ofEpochSecond(secs, nanos, ZoneOffset.UTC); LocalDateTime ldt_ms = LocalDateTime.ofEpochSecond(secs, nanos_ms, ZoneOffset.UTC); Instant inst = Instant.ofEpochSecond(secs, nanos); Instant inst_ms = Instant.ofEpochSecond(secs, nanos_ms); //System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); /////////// Timestamp //////////////////////////////// Timestamp ta = new Timestamp(millis); ta.setNanos(nanos); if (!isEqual(ta.toLocalDateTime(), ta)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ta.toLocalDateTime(), ta); throw new RuntimeException("FAILED: j.s.ts -> ldt"); } if (!isEqual(ldt, Timestamp.valueOf(ldt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ldt, Timestamp.valueOf(ldt)); throw new RuntimeException("FAILED: ldt -> j.s.ts"); } Instant inst0 = ta.toInstant(); if (ta.getTime() != inst0.toEpochMilli() || ta.getNanos() != inst0.getNano() || !ta.equals(Timestamp.from(inst0))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: j.s.ts -> instant -> j.s.ts"); } inst = Instant.ofEpochSecond(secs, nanos); Timestamp ta0 = Timestamp.from(inst); if (ta0.getTime() != inst.toEpochMilli() || ta0.getNanos() != inst.getNano() || !inst.equals(ta0.toInstant())) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: instant -> timestamp -> instant"); } ////////// java.sql.Date ///////////////////////////// // j.s.d/t uses j.u.d.equals() !!!!!!!! java.sql.Date jsd = new java.sql.Date(millis); if (!isEqual(jsd.toLocalDate(), jsd)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jsd.toLocalDate(), jsd); throw new RuntimeException("FAILED: j.s.d -> ld"); } LocalDate ld = ldt.toLocalDate(); if (!isEqual(ld, java.sql.Date.valueOf(ld))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ld, java.sql.Date.valueOf(ld)); throw new RuntimeException("FAILED: ld -> j.s.d"); } ////////// java.sql.Time ///////////////////////////// java.sql.Time jst = new java.sql.Time(millis); if (!isEqual(jst.toLocalTime(), jst)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jst.toLocalTime(), jst); throw new RuntimeException("FAILED: j.s.t -> lt"); } // millis precision LocalTime lt = ldt_ms.toLocalTime(); if (!isEqual(lt, java.sql.Time.valueOf(lt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(lt, java.sql.Time.valueOf(lt)); throw new RuntimeException("FAILED: lt -> j.s.t"); } } System.out.println("Passed!"); }
Example 20
Source File: JavatimeTest.java From hottub with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Throwable { int N = 10000; long t1970 = new java.util.Date(70, 0, 01).getTime(); Random r = new Random(); for (int i = 0; i < N; i++) { int days = r.nextInt(50) * 365 + r.nextInt(365); long secs = t1970 + days * 86400 + r.nextInt(86400); int nanos = r.nextInt(NANOS_PER_SECOND); int nanos_ms = nanos / 1000000 * 1000000; // millis precision long millis = secs * 1000 + r.nextInt(1000); LocalDateTime ldt = LocalDateTime.ofEpochSecond(secs, nanos, ZoneOffset.UTC); LocalDateTime ldt_ms = LocalDateTime.ofEpochSecond(secs, nanos_ms, ZoneOffset.UTC); Instant inst = Instant.ofEpochSecond(secs, nanos); Instant inst_ms = Instant.ofEpochSecond(secs, nanos_ms); //System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); /////////// Timestamp //////////////////////////////// Timestamp ta = new Timestamp(millis); ta.setNanos(nanos); if (!isEqual(ta.toLocalDateTime(), ta)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ta.toLocalDateTime(), ta); throw new RuntimeException("FAILED: j.s.ts -> ldt"); } if (!isEqual(ldt, Timestamp.valueOf(ldt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ldt, Timestamp.valueOf(ldt)); throw new RuntimeException("FAILED: ldt -> j.s.ts"); } Instant inst0 = ta.toInstant(); if (ta.getTime() != inst0.toEpochMilli() || ta.getNanos() != inst0.getNano() || !ta.equals(Timestamp.from(inst0))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: j.s.ts -> instant -> j.s.ts"); } inst = Instant.ofEpochSecond(secs, nanos); Timestamp ta0 = Timestamp.from(inst); if (ta0.getTime() != inst.toEpochMilli() || ta0.getNanos() != inst.getNano() || !inst.equals(ta0.toInstant())) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); throw new RuntimeException("FAILED: instant -> timestamp -> instant"); } ////////// java.sql.Date ///////////////////////////// // j.s.d/t uses j.u.d.equals() !!!!!!!! java.sql.Date jsd = new java.sql.Date(millis); if (!isEqual(jsd.toLocalDate(), jsd)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jsd.toLocalDate(), jsd); throw new RuntimeException("FAILED: j.s.d -> ld"); } LocalDate ld = ldt.toLocalDate(); if (!isEqual(ld, java.sql.Date.valueOf(ld))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(ld, java.sql.Date.valueOf(ld)); throw new RuntimeException("FAILED: ld -> j.s.d"); } ////////// java.sql.Time ///////////////////////////// java.sql.Time jst = new java.sql.Time(millis); if (!isEqual(jst.toLocalTime(), jst)) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(jst.toLocalTime(), jst); throw new RuntimeException("FAILED: j.s.t -> lt"); } // millis precision LocalTime lt = ldt_ms.toLocalTime(); if (!isEqual(lt, java.sql.Time.valueOf(lt))) { System.out.printf("ms: %16d ns: %10d ldt:[%s]%n", millis, nanos, ldt); print(lt, java.sql.Time.valueOf(lt)); throw new RuntimeException("FAILED: lt -> j.s.t"); } } System.out.println("Passed!"); }