ServiceStack.Text json中序列化日期格式问题的解决
在使用ServiceStack.Text的序列化为json格式的时候,当属性为datetime的时候,返回的是一个new date(324234234)的字符串,看着非常不爽。 如果是js来获取结果还好,
如果是c#获取这种字符串是没有办法转化为时间的。 所以我改造了下,让返回的是‘2015-06-06 09:11:11’的格式。
先获取源码, 然后在jsconfig.cs中加入如下代码
- private static bool dMsDatetimeFormat=true;
- public static bool MsDatetimeFormat
- {
- get { return dMsDatetimeFormat; }
- set { dMsDatetimeFormat = value; }
- }
这是用来标示是否转化为刚才看到的那种自定义的格式。
接着 修改DateTimeSerializer.cs文件的 public static void WriteWcfJsonDate(TextWriter writer, DateTime dateTime)方法
修改后的代码如下
- public static void WriteWcfJsonDate(TextWriter writer, DateTime dateTime)
- {
- if (JsConfig.AssumeUtc && dateTime.Kind == DateTimeKind.Unspecified)
- {
- dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
- }
- if (JsConfig.DateHandler == DateHandler.ISO8601)
- {
- writer.Write(dateTime.ToString("o", CultureInfo.InvariantCulture));
- return;
- }
- if (JsConfig.DateHandler == DateHandler.RFC1123)
- {
- writer.Write(dateTime.ToUniversalTime().ToString("R", CultureInfo.InvariantCulture));
- return;
- }
- var timestamp = dateTime.ToUnixTimeMs();
- string offset = null;
- if (dateTime.Kind != DateTimeKind.Utc)
- {
- if (JsConfig.DateHandler == DateHandler.TimestampOffset && dateTime.Kind == DateTimeKind.Unspecified)
- offset = UnspecifiedOffset;
- else
- offset = LocalTimeZone.GetUtcOffset(dateTime).ToTimeOffsetString();
- }
- else
- {
- // Normally the JsonDateHandler.TimestampOffset doesn't append an offset for Utc dates, but if
- // the JsConfig.AppendUtcOffset is set then we will
- if (JsConfig.DateHandler == DateHandler.TimestampOffset && JsConfig.AppendUtcOffset.HasValue && JsConfig.AppendUtcOffset.Value)
- offset = UtcOffset;
- }
- if (JsConfig.MsDatetimeFormat)
- {
- writer.Write(dateTime.ToString("yyyy-MM-dd hh:mm:ss"));
- }
- else
- {
- writer.Write(EscapedWcfJsonPrefix);
- writer.Write(timestamp);
- if (offset != null)
- {
- writer.Write(offset);
- }
- writer.Write(EscapedWcfJsonSuffix);
- }
- }
这样再使用序列化方法的时候返回的就是’2015-09-08 11:11:11’的格式了
- ServiceStack.Text.JsonSerializer.SerializeToString(new
- { date=DateTime.Now,
- SecureContent = "here's some secure content that you can only see if you provide a correct apiKey",
- User = "user"
- })
当你不想用的时候,想恢复默认的方式,只要序列化前用这句就行了
ServiceStack.Text.JsConfig.MsDatetimeFormat = false;
ServiceStack.Text json中序列化日期格式问题的解决的更多相关文章
- springMvc返回Json中自定义日期格式
(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加ja ...
- json中的日期格式转换(扩展new date()显示格式)
在java spring mvc 开发过程中,通过json 格式,向前端传递数据,日期格式发生了转变, 在前台数据展示时,要进行一定格式的转换才能正常显示: 我在开发中使用了easy ui 和my ...
- (十七)springMvc 对表单提交的日期以及JSON中的日期的参数绑定
文章目录 前言 `Ajax`提交表单数据 `Ajax`提交`JSON` 格式数据 解决输出JSON乱码的问题 控制JSON输出日期格式 小记 前言 springMVC 提供强大的参数绑定功能,使得我们 ...
- spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- [.Net Core 3.0+/.Net 5] System.Text.Json中时间格式化
简介 .Net Core 3.0开始全新推出了一个名为System.Text.Json的Json解析库,用于序列化和反序列化Json,此库的设计是为了取代Json.Net(Newtonsoft.Jso ...
- SpringMVC返回Json,自定义Json中Date类型格式
http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...
- 在Gridview 中 对日期格式的控制
在数据库中保存日期格式的时候,我们需要在客户端的显示有自己的要求 这就需要对 datatime 类型的数据进行控制,使之显示为你需要的格式 数据库中 如果不对其进行控制,显示的格式为 当在前端页面上进 ...
- Java处理Excel中的日期格式
Java处理Excel中的日期格式 2011-12-23 17:34:03| 分类: java |举报 |字号 订阅 下载LOFTER 我的照片书 | 在Excel中的日期格式,其数值为距离1 ...
- 工具类:关于解决数据库中的日期格式,经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结
经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结 import java.text.SimpleDateFormat;import net.sf.j ...
随机推荐
- redis位图
<?php function frstr($str){ return str_pad($str,8,'0',STR_PAD_LEFT); } $php=''; $p= frstr(decbin( ...
- servlet配置及其生命周期
servlet配置: 在web.xml中,首先向服务器注册一个servlet.在<servlet>标签下 给定一个servlet名字,这个servlet-name是我们自己用的,方便我们用 ...
- 利用VMware在虚拟机上安装Zookeeper集群
http://blog.csdn.net/u010246789/article/details/52101026 利用VMware在虚拟机上安装Zookeeper集群 pasting
- C++快速输出一个整数的二进制表示(不用写函数)
如果要输出int型的整数x,代码为: cout << bitset<>(x) << endl; 如果要输出long long型的整数x,代码为: cout < ...
- 年薪30万的Android程序员必须知道的帖子
https://github.com/Trinea/android-open-project
- jquery使用js的一些疼处
使用javascript的一些疼处 书写繁琐,代码量大 代码复杂 动画效果,很难实现.使用定时器 各种操作和处理 HTML <button id="btn">按钮< ...
- Sql Server-使用Sql Server自带的分词功能实现字段关键词提取(分词能力很低,慎用)
“创建全文索引 启动服务 在SQL Server配置管理工具中,找到'SQL Full-text Filter Daemon Launcher'服务用本地用户启动. 创建全文目录 打开需要创建全文目录 ...
- 正规式->最小化DFA说明
整体的步骤是三步: 一,先把正规式转换为NFA(非确定有穷自动机), 二,在把NFA通过"子集构造法"转化为DFA, 三,在把DFA通过"分割法"进行最小化 ...
- [代码][deque容器练习]打分案例
案例要求: //打分案例(sort算法排序)//创建5个选手(姓名.得分),十个评委对五个选手进行打分//得分规则:去除最高分,去除最低分,取出平均分//按得分对5个选手进行排名 源代码: //打分案 ...
- 如何使用C#程序给PDF文件添加编辑域
PDF文档通常是不能编辑的,但有些时候需要在PDF文档中填写日期或签名之类,就需要在PDF有能编辑的文本域,本文介绍怎样用C#来实现这一功能. 环境 工具:VS2015 语言:C# 操作PDF类库:i ...