/// <summary>
 /// Converts a Parquet Interval data type value to a DvTimeSpan data type value.
 /// </summary>
 /// <param name="src">Parquet Interval value (int : months, int : days, int : milliseconds).</param>
 /// <param name="dst">DvTimeSpan object.</param>
 public void Conv(ref Interval src, ref DvTimeSpan dst)
 {
     try
     {
         dst = new DvTimeSpan(TimeSpan.FromDays(src.Months * 30 + src.Days) + TimeSpan.FromMilliseconds(src.Millis));
     }
     catch (Exception ex)
     {
         // Handle TimeSpan OverflowException
         _ch.Error("Cannot convert Inteval to DvTimeSpan. Exception : '{0}'", ex.Message);
         dst = DvTimeSpan.NA;
     }
 }
 /// <summary>
 /// Constructs a DvDateTimeZone from a clock date-time and a time zone offset from UTC.
 /// </summary>
 /// <param name="dt">The clock time</param>
 /// <param name="offset">The offset</param>
 public DvDateTimeZone(DvDateTime dt, DvTimeSpan offset)
 {
     if (dt.IsNA || offset.IsNA || !TryValidateOffset(offset.Ticks, out _offset))
     {
         _dateTime = DvDateTime.NA;
         _offset   = DvInt2.NA;
     }
     else
     {
         _dateTime = ValidateDate(dt, ref _offset);
     }
     AssertValid();
 }