/// <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));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }