Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="objectType"></param>
        /// <param name="existingValue"></param>
        /// <param name="serializer"></param>
        /// <returns></returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.Value == null)
            {
                return(reader.Value);
            }

            if (reader.TokenType != JsonToken.Integer)
            {
                throw new Exception($"序列化失败:必须为时间戳 {reader.Value}");
            }

            var timestamp = (long)reader.Value;

            var date = TimestampHelper.FromUnixTimeMilliseconds(timestamp);

            if (objectType == typeof(DateTime) || objectType == typeof(DateTime?))
            {
                return(date.LocalDateTime);
            }
            else
            {
                return(date);
            }
        }