Skip to content

Commit db46352

Browse files
committed
Merge branch '51-stable' into 52-stable
* 51-stable: [core] fix nanoseconds handling for Timestamps (#1020)
2 parents a9a1ca4 + ae82935 commit db46352

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/java/arjdbc/util/DateTimeUtils.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,11 @@ public static RubyTime newDummyTime(final ThreadContext context, final Timestamp
218218
final int hours = time.getHours();
219219
final int minutes = time.getMinutes();
220220
final int seconds = time.getSeconds();
221-
final int nanos = time.getNanos(); // max 999-999-999
221+
int nanos = time.getNanos(); // max 999-999-999
222+
final int millis = nanos / 1000000;
223+
nanos = nanos % 1000000;
222224

223-
DateTime dateTime = new DateTime(2000, 1, 1, hours, minutes, seconds, defaultZone);
225+
DateTime dateTime = new DateTime(2000, 1, 1, hours, minutes, seconds, millis, defaultZone);
224226
return RubyTime.newTime(context.runtime, dateTime, nanos);
225227
}
226228

@@ -233,9 +235,11 @@ public static RubyTime newTime(final ThreadContext context, final Timestamp time
233235
final int hours = timestamp.getHours();
234236
final int minutes = timestamp.getMinutes();
235237
final int seconds = timestamp.getSeconds();
236-
final int nanos = timestamp.getNanos(); // max 999-999-999
238+
int nanos = timestamp.getNanos(); // max 999-999-999
239+
final int millis = nanos / 1000000;
240+
nanos = nanos % 1000000;
237241

238-
DateTime dateTime = new DateTime(year, month, day, hours, minutes, seconds, 0, defaultZone);
242+
DateTime dateTime = new DateTime(year, month, day, hours, minutes, seconds, millis, defaultZone);
239243
return RubyTime.newTime(context.runtime, dateTime, nanos);
240244
}
241245

0 commit comments

Comments
 (0)