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 ...
随机推荐
- vue-router和锚点冲突问题
传统的锚点定位会与vue-router中的路由设置存在冲突,都是使用'#'进行的,所以这里使用一直方法来模拟锚点跳转,并使用tween.js达到动态的过度效果 不使用原生锚点,使用这种方式解决 imp ...
- Bootstrap-CL:导航栏
ylbtech-Bootstrap-CL:导航栏 1.返回顶部 1. Bootstrap 导航栏 导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏在您的应用或网站中作为导航页 ...
- How to create a site with AJAX enabled in MVC framework.
How to create a site with AJAX enabled in MVC framework. The Project illustrates how to create a web ...
- Rhythmk 学习 Hibernate 06 - Hibernate 表间关系 [One To One]
1.One To One 单相 背景: 古代一个老婆 只能关联一个老公 husband.java package com.rhythmk.model; public class husband { ...
- 数组/指针/const/字符串常量的使用传值问题
#include<stdio.h> #include<string.h> int main() { ] = "abcd"; //常指针a指向字符串常量&qu ...
- Python运维开发基础07-文件基础
一,文件的基础操作 对文件操作的流程 [x] :打开文件,得到文件句柄并赋值给一个变量 [x] :通过句柄对文件进行操作 [x] :关闭文件 创建初始操作模板文件 [root@localhost sc ...
- cas-client登录后报INVALID_PROXY_CALLBACK
服务器部署cas,登录后页面提示INVALID_PROXY_CALLBACK 然后查看cas的日志,日志报以下错误: 2018-06-29 11:36:06,251 ERROR [org.jasig. ...
- 2015年传智播客JavaEE 第168期就业班视频教程11-导入配置文件
资源文件放在Source Folder目录下面,这个目录同样会编译到classes目录下 web.xml的 <listener> <listener-class>org.spr ...
- $_SERVER['PHP_AUTH_USER']
PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本.在 Apache 模块的 PHP 脚本中,可以用 header() 函数来向客户端 ...
- UITextFeild银行卡/身份证/电话号任意分割.
日常开发中可能有个需求, 1.银行卡每4位添加一个空格 2.电话号:3 4 4 比如(138 8888 8888)3.身份证(411111 20171213 1314) 看了网上许多方法都是输入的时 ...