Github user prasanthj commented on a diff in the pull request: https://github.com/apache/orc/pull/220#discussion_r171117980 --- Diff: java/core/src/java/org/apache/orc/impl/TreeReaderFactory.java --- @@ -49,6 +50,15 @@ * Factory for creating ORC tree readers. */ public class TreeReaderFactory { + // The current JDK has a bug where values of the form: + // YYYY-MM-DD HH:MM:SS.000X is off by a second for dates before 1970. + public static final boolean TIMESTAMP_BUG; + static { + Timestamp ts1 = Timestamp.valueOf("1969-12-25 12:34:56.0001"); + Timestamp ts2 = Timestamp.valueOf("1969-12-25 12:34:56.0011"); + // Compare the seconds, which should be the same. + TIMESTAMP_BUG = ts1.getTime()/1000 != ts2.getTime()/1000; --- End diff -- I think in this case getSeconds() would return the same but millis would have changed as ts2 added a whole new millisecond to the time. isn't it?
---