Skip to content

Commit c6438ab

Browse files
wip
1 parent 4ec77b3 commit c6438ab

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

src/main/java/com/influxdb/v3/client/internal/NanosecondConverter.java

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
*/
2222
package com.influxdb.v3.client.internal;
2323

24+
import com.influxdb.v3.client.write.WritePrecision;
25+
import org.apache.arrow.vector.types.pojo.ArrowType;
26+
import org.apache.arrow.vector.types.pojo.Field;
27+
28+
import javax.annotation.Nonnull;
29+
import javax.annotation.Nullable;
2430
import java.math.BigDecimal;
2531
import java.math.BigInteger;
2632
import java.time.Instant;
@@ -30,12 +36,6 @@
3036
import java.util.Map;
3137
import java.util.concurrent.TimeUnit;
3238
import java.util.function.Function;
33-
import javax.annotation.Nonnull;
34-
import javax.annotation.Nullable;
35-
36-
import com.influxdb.v3.client.write.WritePrecision;
37-
import org.apache.arrow.vector.types.pojo.ArrowType;
38-
import org.apache.arrow.vector.types.pojo.Field;
3939

4040
import static java.util.function.Function.identity;
4141

@@ -141,16 +141,25 @@ public static BigInteger getTimestamp(@Nonnull final Object value, @Nonnull fina
141141
break;
142142
}
143143
long nanoseconds = TimeUnit.NANOSECONDS.convert((Long) value, timeUnit);
144-
BigInteger convertedTime = NanosecondConverter.convert(Instant.ofEpochSecond(0, nanoseconds), WritePrecision.NS);
145-
result = NanosecondConverter.convertToNanos(convertedTime, WritePrecision.NS);
144+
Instant instant = Instant.ofEpochSecond(0, nanoseconds);
145+
result = convertInstantToNano(instant, WritePrecision.NS);
146146
} else {
147-
BigInteger convertedTime = NanosecondConverter.convert(Instant.ofEpochMilli((Long) value), WritePrecision.NS);
148-
result = NanosecondConverter.convertToNanos(convertedTime, WritePrecision.NS);
147+
Instant instant = Instant.ofEpochMilli((Long) value);
148+
result = convertInstantToNano(instant, WritePrecision.NS);
149149
}
150150
} else if (value instanceof LocalDateTime) {
151-
BigInteger convertedTime = NanosecondConverter.convert(((LocalDateTime) value).toInstant(ZoneOffset.UTC), WritePrecision.NS);
152-
result = NanosecondConverter.convertToNanos(convertedTime, WritePrecision.NS);
151+
Instant instant = ((LocalDateTime) value).toInstant(ZoneOffset.UTC);
152+
result = convertInstantToNano(instant, WritePrecision.NS);
153153
}
154154
return result;
155155
}
156+
157+
private static BigInteger convertInstantToNano(final Instant instant, final WritePrecision precision) {
158+
var writePrecision = WritePrecision.NS;
159+
if (precision != null) {
160+
writePrecision = precision;
161+
}
162+
BigInteger convertedTime = NanosecondConverter.convert(instant, writePrecision);
163+
return NanosecondConverter.convertToNanos(convertedTime, writePrecision);
164+
}
156165
}

0 commit comments

Comments
 (0)