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 ...
随机推荐
- Call to your teacher
链接:https://www.nowcoder.net/acm/contest/76/F来源:牛客网 Call to your teacher 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/ ...
- servlet中获取配置文件中的参数.
web.xml (添加init-param) <?xml version="1.0" encoding="UTF-8"?> <web-app ...
- Centos命令行窗口显示一大串前缀,777;notify;Command completed;的解决方法
How to remove the return code from the terminal prompt In addition to the PS1 environment variable, ...
- Lifecycle of an ASP.NET Web API Message
ASP.NET Web API, as we know now, is a framework that helps build Services over HTTP. Web API was int ...
- linux 单网卡来绑定多IP实现多网段访问以及多网卡绑定单IP实现负载均衡
ifconfig eth0 hw AA:BB:CC:DD:EE:FF
- Haartraining 训练方法(这个样例真有用,能行)
目标检测方法最初由Paul Viola [Viola01]提出,并由Rainer Lienhart [Lienhart02]对这一方法进行了改善.该方法的基本步骤为: 首先,利用样本(大约几百幅样本图 ...
- MVC4 AspNet MVC下的Ajax / 使用微软提供的Ajax请求脚本 [jquery.unobtrusive-ajax.min.js]
源码参考:链接:http://pan.baidu.com/s/1pKhHHMj 密码:mkr4 1:新建-->项目-->Web-->ASP.NET MVC 4 Web 应用程序.命 ...
- 在Centos7下安装Python+Selenium+Firefox学习环境
Selenium 一自动化测试工具.它支持 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测 ...
- codeforces:Michael and Charging Stations分析和实现
题目大意 迈克尔接下来n天里分别需要支付C[1], C[2], ... , C[n]费用,但是每次支付费用可以选择使用优惠或不使用优惠,每次使用价值X的优惠那么迈克尔所能使用的优惠余量将减少X并且当天 ...
- 127. Word Ladder (Tree, Queue; WFS)
Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest t ...