• mvc 返回json格式时间格式化


     protected override JsonResult Json(object data, string contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior behavior)
            {
                return new ToJsonResult
                {
                    Data = data,
                    ContentEncoding = contentEncoding,
                    ContentType = contentType,
                    JsonRequestBehavior = behavior,
                    FormateStr = "yyyy-MM-dd HH:mm:ss"
                };
            }
            protected JsonResult MyJson(object data)
            {
                return new ToJsonResult
                {
                    Data = data,
                    FormateStr = "yyyy-MM-dd"
                };
            }
     /// <summary>
        /// 说明:转化为Jason
        /// 作者: CallmeYhz
        /// </summary>
        public class ToJsonResult : JsonResult
        {
            const string error = "该请求已被封锁,因为敏感信息透露给第三方网站,这是一个GET请求时使用的。为了可以GET请求,请设置JsonRequestBehavior AllowGet。";
            /// <summary>
            /// 格式化字符串
            /// </summary>
            public string FormateStr
            {
                get;
                set;
            }
            /// <summary>
            /// 说明:重写ExecueResult方法
            /// 作者:CallmeYhz    
            /// </summary>
            /// <param name="context"></param>
            public override void ExecuteResult(ControllerContext context)
            {
                if (context == null)
                {
                    throw new ArgumentNullException("context");
                }
                if (JsonRequestBehavior == JsonRequestBehavior.DenyGet &&
                    String.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
                {
                    throw new InvalidOperationException(error);
                }
                HttpResponseBase response = context.HttpContext.Response;
    
                if (!String.IsNullOrEmpty(ContentType))
                {
                    response.ContentType = ContentType;
                }
                else
                {
                    response.ContentType = "application/json";
                }
                if (ContentEncoding != null)
                {
                    response.ContentEncoding = ContentEncoding;
                }
                if (Data != null)
                {
                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                    string jsonstring = serializer.Serialize(Data);
                    //string hashOldPassword = @"\/Date((param+)+param+)\/";
                    string p = @"\/Date(d+)\/";
                    MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
                    Regex reg = new Regex(p);
                    jsonstring = reg.Replace(jsonstring, matchEvaluator);
                    response.Write(jsonstring);
                }
            }
    
            /// <summary>
            /// 说明:将Json序列化的时间由/Date(1294499956278+0800)转为字符串
            /// 作者:CallmeYhz   
            /// </summary>
            private string ConvertJsonDateToDateString(Match m)
            {
                string result = string.Empty;
                string p = @"d";
                var cArray = m.Value.ToCharArray();
                StringBuilder sb = new StringBuilder();
                Regex reg = new Regex(p);
                for (int i = 0; i < cArray.Length; i++)
                {
                    if (reg.IsMatch(cArray[i].ToString()))
                    {
                        sb.Append(cArray[i]);
                    }
                }
                // reg.Replace(m.Value;
                DateTime dt = new DateTime(1970, 1, 1);
                dt = dt.AddMilliseconds(long.Parse(sb.ToString()));
                dt = dt.ToLocalTime();
                result = dt.ToString(this.FormateStr);
                return result;
            }
        }

    将此代码添加到baseControle 中就可以了

  • 相关阅读:
    第 9 章 用户自己建立数据类型
    第 10 章 对文件的输入输出
    第 7 章 用函数实现模块化程序设计
    第 4 章 选择结构程序设计
    第 5 章 循环结构程序设计
    第 6 章 利用数组处理批量数据
    第 3 章 最简单的 C 程序设计——顺序程序设计
    第 1 章 程序设计和 C 语言
    第 2 章 算法——程序的灵魂
    SQL(SQL Server) 批量替换两列的数据
  • 原文地址:https://www.cnblogs.com/elsons/p/9973652.html
Copyright © 2020-2023  润新知