/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v8.0.8
src/Npgsql.NodaTime/Internal/OffsetTimeConverter.cs
23 строки
872 B
Nino Floris
Handler rework (#5123)
26 сен 2023, 00:08
Не верифицирован
26 сен 2023, 00:08
0b7aecb
Код
Авторство
О чём код?
using NodaTime; using Npgsql.Internal; namespace Npgsql.NodaTime.Internal; sealed class OffsetTimeConverter : PgBufferedConverter<OffsetTime> { public override bool CanConvert(DataFormat format, out BufferRequirements bufferRequirements) { bufferRequirements = BufferRequirements.CreateFixedSize(sizeof(long) + sizeof(int)); return format is DataFormat.Binary; } // Adjust from 1 microsecond to 100ns. Time zone (in seconds) is inverted. protected override OffsetTime ReadCore(PgReader reader) => new(LocalTime.FromTicksSinceMidnight(reader.ReadInt64() * 10), Offset.FromSeconds(-reader.ReadInt32())); protected override void WriteCore(PgWriter writer, OffsetTime value) { writer.WriteInt64(value.TickOfDay / 10); writer.WriteInt32(-(int)(value.Offset.Ticks / NodaConstants.TicksPerSecond)); } }