QiuNiao_TuDou 2017-12-05 09:14 采纳率: 0%
浏览 3816
已结题

/Date(-62135596800000)/ 如何转换成C# 时间

今天在项目中遇到返回的JSON 串中遇到时间无法转的情况。
如下字符串
/Date(-62135596800000)/

/Date(-62135596800000)/

  • 写回答

6条回答 默认 最新

  • weixin_40778755 2017-12-05 09:28
    关注

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.Serialization.Json;
    using System.ServiceModel.Web;
    using System.IO;
    using System.Text;
    using System.Text.RegularExpressions;
    namespace DemoLibrary
    {
    public class JsonManage
    {
    /// 
    /// JSON序列化
    /// 
    /// 
    /// 
    public static string JsonSerializer(T t)
    {
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
    MemoryStream ms = new MemoryStream();
    ser.WriteObject(ms,t);
    string jsonString = Encoding.UTF8.GetString(ms.ToArray());
    ms.Close();
    string pattern = @"\/Date((\d+)+\d+)\/";
    MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
    Regex reg = new Regex(pattern);
    jsonString = reg.Replace(jsonString, matchEvaluator);
    return jsonString;
    }
    /// 
    /// JSON反序列化
    /// 
    /// 
    /// 
    public static T JsonDeserialize(string jsonString)
    {
    string pattern = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
    MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
    Regex reg = new Regex(pattern);
    jsonString = reg.Replace(jsonString, matchEvaluator);
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
    MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
    T obj = (T)ser.ReadObject(ms);
    return obj;
    }
    /// 
    /// 将Json序列化的时间由/Date(1304931520336+0800)/转为字符串
    /// 
    private static string ConvertJsonDateToDateString(Match m)
    {
    string result = string.Empty;
    DateTime dt = new DateTime(1970,1,1);
    dt = dt.AddMilliseconds(long.Parse(m.Groups[1].Value));
    dt = dt.ToLocalTime();
    result = dt.ToString("yyyy-MM-dd HH:mm:ss");
    return result;
    }
    /// 
    /// 将时间字符串转为Json时间
    /// 
    private static string ConvertDateStringToJsonDate(Match m)
    {
    string result = string.Empty;
    DateTime dt = DateTime.Parse(m.Groups[0].Value);
    dt = dt.ToUniversalTime();
    TimeSpan ts = dt - DateTime.Parse("1970-01-01");
    result = string.Format("\/Date({0}+0800)\/",ts.TotalMilliseconds);
    return result;
    }
    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab