/// <remarks> /// date 0011 0011... /// 8 byte float follows, big-endian bytes /// </remarks> private PropertyContext ReadDate(BinaryReader reader, long position, int count) { var seconds = reader.ReadDoubleBigEndian(); var value = CommonHelpers.ConvertFromMacTime(seconds); int totalSize = reader.GetOffsetFromCurrentPosition(position); return(CreatePropertyContext(position, count, totalSize, PropertyType.Date, value)); }
public static DateTimeOffset GetDateTimeOffsetFromMacTime(this IDataRecord item, int index) { DateTimeOffset result = default; var value = item.GetValue(index); if ((value is DBNull) == false) { result = CommonHelpers.ConvertFromMacTime((long)value); } return(result); }
public static DateTimeOffset GetDateTimeOffsetFromStringMacTime(this IDataRecord item, int index) { DateTimeOffset result = default; var value = item.GetValueOrDefault <string>(index); if (string.IsNullOrEmpty(value) == false) { double parsedValue = double.Parse(value); result = CommonHelpers.ConvertFromMacTime(parsedValue); } return(result); }