在使用ServiceStack.Text的序列化为json格式的时候,当属性为datetime的时候,返回的是一个new date(324234234)的字符串,看着非常不爽。 如果是js来获取结果还好,

如果是c#获取这种字符串是没有办法转化为时间的。 所以我改造了下,让返回的是‘2015-06-06 09:11:11’的格式。

先获取源码, 然后在jsconfig.cs中加入如下代码

Code Snippet
  1. private static bool dMsDatetimeFormat=true;
  2.       public static bool MsDatetimeFormat
  3.       {
  4.           get { return dMsDatetimeFormat; }
  5.           set { dMsDatetimeFormat = value; }
  6.       }

这是用来标示是否转化为刚才看到的那种自定义的格式。

接着 修改DateTimeSerializer.cs文件的   public static void WriteWcfJsonDate(TextWriter writer, DateTime dateTime)方法

修改后的代码如下

Code Snippet
  1. public static void WriteWcfJsonDate(TextWriter writer, DateTime dateTime)
  2.     {
  3.         if (JsConfig.AssumeUtc && dateTime.Kind == DateTimeKind.Unspecified)
  4.         {
  5.             dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
  6.         }
  7.         if (JsConfig.DateHandler == DateHandler.ISO8601)
  8.         {
  9.             writer.Write(dateTime.ToString("o", CultureInfo.InvariantCulture));
  10.             return;
  11.         }
  12.         if (JsConfig.DateHandler == DateHandler.RFC1123)
  13.         {
  14.             writer.Write(dateTime.ToUniversalTime().ToString("R", CultureInfo.InvariantCulture));
  15.             return;
  16.         }
  17.         var timestamp = dateTime.ToUnixTimeMs();
  18.         string offset = null;
  19.         if (dateTime.Kind != DateTimeKind.Utc)
  20.         {
  21.             if (JsConfig.DateHandler == DateHandler.TimestampOffset && dateTime.Kind == DateTimeKind.Unspecified)
  22.                 offset = UnspecifiedOffset;
  23.             else
  24.                 offset = LocalTimeZone.GetUtcOffset(dateTime).ToTimeOffsetString();
  25.         }
  26.         else
  27.         {
  28.             // Normally the JsonDateHandler.TimestampOffset doesn't append an offset for Utc dates, but if
  29.             // the JsConfig.AppendUtcOffset is set then we will
  30.             if (JsConfig.DateHandler == DateHandler.TimestampOffset && JsConfig.AppendUtcOffset.HasValue && JsConfig.AppendUtcOffset.Value)
  31.                 offset = UtcOffset;
  32.         }
  33.         if (JsConfig.MsDatetimeFormat)
  34.         {
  35.             writer.Write(dateTime.ToString("yyyy-MM-dd hh:mm:ss"));
  36.         }
  37.         else
  38.         {
  39.             writer.Write(EscapedWcfJsonPrefix);
  40.             writer.Write(timestamp);
  41.             if (offset != null)
  42.             {
  43.                 writer.Write(offset);
  44.             }
  45.             writer.Write(EscapedWcfJsonSuffix);
  46.         }
  47.     }

这样再使用序列化方法的时候返回的就是’2015-09-08  11:11:11’的格式了

Code Snippet
  1. ServiceStack.Text.JsonSerializer.SerializeToString(new
  2.                 {   date=DateTime.Now,
  3.                     SecureContent = "here's some secure content that you can only see if you provide a correct apiKey",
  4.                     User = "user"
  5.                 })

当你不想用的时候,想恢复默认的方式,只要序列化前用这句就行了

ServiceStack.Text.JsConfig.MsDatetimeFormat = false;

ServiceStack.Text json中序列化日期格式问题的解决的更多相关文章

  1. springMvc返回Json中自定义日期格式

    (一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加ja ...

  2. json中的日期格式转换(扩展new date()显示格式)

    在java  spring mvc 开发过程中,通过json 格式,向前端传递数据,日期格式发生了转变, 在前台数据展示时,要进行一定格式的转换才能正常显示: 我在开发中使用了easy ui 和my ...

  3. (十七)springMvc 对表单提交的日期以及JSON中的日期的参数绑定

    文章目录 前言 `Ajax`提交表单数据 `Ajax`提交`JSON` 格式数据 解决输出JSON乱码的问题 控制JSON输出日期格式 小记 前言 springMVC 提供强大的参数绑定功能,使得我们 ...

  4. spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  5. [.Net Core 3.0+/.Net 5] System.Text.Json中时间格式化

    简介 .Net Core 3.0开始全新推出了一个名为System.Text.Json的Json解析库,用于序列化和反序列化Json,此库的设计是为了取代Json.Net(Newtonsoft.Jso ...

  6. SpringMVC返回Json,自定义Json中Date类型格式

    http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...

  7. 在Gridview 中 对日期格式的控制

    在数据库中保存日期格式的时候,我们需要在客户端的显示有自己的要求 这就需要对 datatime 类型的数据进行控制,使之显示为你需要的格式 数据库中 如果不对其进行控制,显示的格式为 当在前端页面上进 ...

  8. Java处理Excel中的日期格式

    Java处理Excel中的日期格式 2011-12-23 17:34:03|  分类: java |举报 |字号 订阅 下载LOFTER 我的照片书  |   在Excel中的日期格式,其数值为距离1 ...

  9. 工具类:关于解决数据库中的日期格式,经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结

    经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结 import java.text.SimpleDateFormat;import net.sf.j ...

随机推荐

  1. Linux嵌入式内核模块程序设计

    1.环境搭建 vmware+Fedora 2.创建一个Hello文件 [root@localhost ~]# mkdir Hello 3.在Hello里面创建 hello.c 和 Makefile 两 ...

  2. 利用MessageFormat实现短信模板的匹配

    其实没什么技术含量,因为老是想不起来,所以在此文做下记录. 通常我们的应用系统中都会有很多短信的发送,或者是信息邮件等的推送,而这些信息却有着相同的共性,比如只是用户名换了下. 像下面这条,除了红色字 ...

  3. django-上下文渲染器,将后端内容提供给模板使用,自定义渲染器

    使用场景:当同一个类容需要出现在多个模板中, 上下文管理器就是将这个内容以字典的形式返回给所有模板,模板通过 {{ key }}取值. 结构:上下文管理器 文件名一般为context_processo ...

  4. uva-10879-因数分解

    把一个数分解成n*m的形式,一定存在 解题思路: 一个大于1的正整数最小因数一定是素数 ac时间80ms,感觉慢了,可惜看不到0ms的大神代码 #include <iostream> #i ...

  5. 熟悉下apple 马甲包

    一.什么是马甲包 马甲包是利用App store 规则漏洞,通过技术手段,多次上架同一款产品的方法.马甲包和主产品包拥有同样的内容和功能,除了icon和应用名称不能完全一致,其他基本一致. 二.为什么 ...

  6. WPF MVVM

    MVVM全称:Model-View-ViewModel 优点:MVVM的引入使程序实现了松耦合设计,UI层与业务逻辑可以并行设计 1.Model:对现实世界的抽象 比如:需要做一个学校的管理系统,学校 ...

  7. 我的Linux之路——windows10用WMware安装CentOS7.5 虚拟机详细步骤

    出自:https://www.jianshu.com/p/99f784d465f4 VMware简介:   VMware是一个虚拟PC的软件,可以在现有的操纵系统上虚拟出一个新的硬件环境,相当于模拟出 ...

  8. 10 MySQL--权限管理

    权限管理 1.创建账号 # 本地账号 create user '; # mysql -uegon1 -p123 # 远程帐号 create user '; # mysql -uegon2 -p123 ...

  9. Hadoop之MapReduce学习笔记(一)

    主要内容:mapreduce整体工作机制介绍:wordcont的编写(map逻辑 和 reduce逻辑)与提交集群运行:调度平台yarn的快速理解以及yarn集群的安装与启动. 1.mapreduce ...

  10. word2vec 细节解析1

    count.extend(collections.Counter(list1).most_common(2))表示:使用collections.Counter统计list1列表重单词的频数,然后使用m ...