Github user omalley commented on the issue: https://github.com/apache/orc/pull/220 Here is another way to look at the problem with each timestamp's getTime() and getNanos(): Timestamp 1969-12-25 12:34:56.0 as -530704000 and 0 Timestamp 1969-12-25 12:34:56.0001 as -530704000 and 100000 Timestamp 1969-12-25 12:34:56.0011 as -530703999 and 1100000 When we use getTime()/1000 the change happens between .000999999 and .001000000. If you don't think that Java will change, we could hard code the change to use 999_999 all of the time and not do the test.
---