Skip to content

hugoj0s3/NodaTime.MongoDBSerializers

Repository files navigation

NodaTime.MongoDBSerializers

Build status

image of saved document

Getting started

Registring all supported serializers

 IDateTimeZoneProvider provider = //Set a provider here
 NodaTimeSerializersRegister.RegisterAll(provider);

Registring one by one serializers

  IDateTimeZoneProvider provider = DateTimeZoneProviders.Tzdb;
  ZonedDateTimeSerializer.RegisterSerializer(provider);

  LocalDateTimeSerializer.RegisterSerializer();
  LocalDateSerializer.RegisterSerializer();
  LocalTimeSerializer.RegisterSerializer();

  OffSetDatetimeSerializer.RegisterSerializer();
  OffSetTimeSerializer.RegisterSerializer();
  OffSetDateSerializer.RegisterSerializer();

  PeriodSerializer.RegisterSerializer();
  DurationSerializer.RegisterSerializer();

Types supported

  • ZonedDateTime
  • LocalDateTime
  • LocalDate
  • LocalTime
  • OffsetDateTime
  • OffsetTime
  • Period
  • Duration

Limitation

For the types ZonedDateTime, LocalDateTime, LocalTime, OffsetDateTime, OffsetTime it serialize using the unix milliseconds so it will cutt off the nanoseconds. If you have a scenario where you need to save the current time and get it back from a mongo db and compare both. Use the milliseconds like this:

 var milliseconds = SystemClock.Instance.GetCurrentInstant().ToUnixTimeMilliseconds();
 ZonedTDateTime now = Instant.FromUnixTimeMilliseconds(milliseconds).InUtc();

About

Serializers for NodaTime objects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages