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

/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;
    }
    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料