ReadAsDateTime() public method

Reads the next JSON token from the stream as a Nullable{T} of DateTime.
public ReadAsDateTime ( ) : DateTime?
return DateTime?
        /// <summary>
        /// Reads the next JSON token from the underlying <see cref="JsonReader"/> as a <see cref="Nullable{T}"/> of <see cref="DateTime"/>.
        /// </summary>
        /// <returns>A <see cref="Nullable{T}"/> of <see cref="DateTime"/>. This method will return <c>null</c> at the end of an array.</returns>
        public override DateTime?ReadAsDateTime()
        {
            DateTime?dateTime = _reader.ReadAsDateTime();

            ValidateCurrentToken();
            return(dateTime);
        }
 /// <summary>
 /// Reads a date token from a JSON reader
 /// </summary>
 /// <param name="reader">json reader</param>
 /// <param name="objectType">object type</param>
 /// <returns>date object</returns>
 private object ReadDateToken(JsonReader reader, Type objectType)
 {
     if (objectType == typeof(DateTimeOffset?) && reader.TokenType == JsonToken.Null)
         return null;
     if (reader.TokenType == JsonToken.Date)
     {
         return reader.ReadAsDateTime();
     }
     if (reader.TokenType != JsonToken.Integer)
     {
         throw new ArgumentException($"Expecting token of type '{JsonToken.Integer}', and found a token of type {reader.TokenType}.");
     }
     var value = Convert.ToInt64(reader.Value, CultureInfo.InvariantCulture);
     if (_isMilliseconds)
     {
         return GetUtcDateFromUnixTimeMilliseconds(value);
     }
     else
     {
         return GetUtcDateFromUnixTimeSeconds(value);
     }
 }
        private static void ReadByDataType(JsonReader reader, DataType dataType)
        {
            switch (dataType)
            {
                case DataType.String:
                    reader.ReadAsString();
                    break;

                case DataType.Int16:
                case DataType.Int32:
                    reader.ReadAsInt32();
                    break;

                case DataType.ByteArray:
                    reader.ReadAsBytes();
                    break;

                case DataType.Decimal:
                    reader.ReadAsDecimal();
                    break;

                case DataType.DateTime:
                    reader.ReadAsDateTime();
                    break;

                // These types are dealt with, but there's no explicit reader method for them
                // so we just have to trust that it does the right thing.
                case DataType.Byte:
                case DataType.Int64:
                case DataType.Boolean:
                case DataType.Float:
                case DataType.Double:
                    reader.Read();
                    break;
            }
        }
 private bool ReadForType(JsonReader reader, JsonContract contract, bool hasConverter)
 {
   if (hasConverter)
     return reader.Read();
   switch (contract != null ? (int) contract.InternalReadType : 0)
   {
     case 0:
       while (reader.Read())
       {
         if (reader.TokenType != JsonToken.Comment)
           return true;
       }
       return false;
     case 1:
       reader.ReadAsInt32();
       break;
     case 2:
       reader.ReadAsBytes();
       break;
     case 3:
       reader.ReadAsString();
       break;
     case 4:
       reader.ReadAsDecimal();
       break;
     case 5:
       reader.ReadAsDateTime();
       break;
     default:
       throw new ArgumentOutOfRangeException();
   }
   return reader.TokenType != JsonToken.None;
 }