@Override public void serialize(T value, JsonGenerator generator, SerializerProvider provider) throws IOException { if (useTimestamp(provider)) { if (provider.isEnabled(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS)) { generator.writeNumber(DecimalUtils.toBigDecimal( getEpochSeconds.applyAsLong(value), getNanoseconds.applyAsInt(value) )); return; } generator.writeNumber(getEpochMillis.applyAsLong(value)); return; } String str; if (_formatter != null) { str = _formatter.format(value);; } else if (defaultFormat != null) { str = defaultFormat.format(value);; } else { str = value.toString(); } generator.writeString(str); }
protected T _fromDecimal(DeserializationContext context, BigDecimal value) { long seconds = value.longValue(); int nanoseconds = DecimalUtils.extractNanosecondDecimal(value, seconds); return fromNanoseconds.apply(new FromDecimalArguments( seconds, nanoseconds, getZone(context))); }
long seconds = value.longValue(); int nanoseconds = DecimalUtils.extractNanosecondDecimal(value, seconds); return fromNanoseconds.apply(new FromDecimalArguments( seconds, nanoseconds, getZone(context))); long timestamp = parser.getLongValue(); if (context.isEnabled(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS)) { return this.fromNanoseconds.apply(new FromDecimalArguments( timestamp, 0, this.getZone(context) )); return this.fromMilliseconds.apply(new FromIntegerArguments( timestamp, this.getZone(context) )); try { TemporalAccessor acc = _formatter.parse(string); value = parsedToValue.apply(acc); if (context.isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)) { return adjust.apply(value, this.getZone(context));
long seconds = value.longValue(); int nanoseconds = DecimalUtils.extractNanosecondDecimal(value, seconds); return fromNanoseconds.apply(new FromDecimalArguments( seconds, nanoseconds, getZone(context))); long timestamp = parser.getLongValue(); if (context.isEnabled(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS)) { return this.fromNanoseconds.apply(new FromDecimalArguments( timestamp, 0, this.getZone(context) )); return this.fromMilliseconds.apply(new FromIntegerArguments( timestamp, this.getZone(context) )); try { TemporalAccessor acc = _formatter.parse(string); value = parsedToValue.apply(acc); if (context.isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)) { return adjust.apply(value, this.getZone(context));
protected T _fromLong(DeserializationContext context, long timestamp) { if(context.isEnabled(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS)){ return fromNanoseconds.apply(new FromDecimalArguments( timestamp, 0, this.getZone(context) )); } return fromMilliseconds.apply(new FromIntegerArguments( timestamp, this.getZone(context))); }
long seconds = value.longValue(); int nanoseconds = DecimalUtils.extractNanosecondDecimal(value, seconds); return fromNanoseconds.apply(new FromDecimalArguments( seconds, nanoseconds, getZone(context))); long timestamp = parser.getLongValue(); if (context.isEnabled(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS)) { return this.fromNanoseconds.apply(new FromDecimalArguments( timestamp, 0, this.getZone(context) )); return this.fromMilliseconds.apply(new FromIntegerArguments( timestamp, this.getZone(context) )); try { TemporalAccessor acc = _formatter.parse(string); value = parsedToValue.apply(acc); if (context.isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)) { return adjust.apply(value, this.getZone(context));