json格式日期转换为自定义格式
2011-09-26 17:25
344 查看
今天在做AJAX数据传输方面的示例。突然发现当以json格式返回日期对像时,直接取得的结果如下 '/Date(1316756746000)/'。这个格式数据,我以前未使用过,也不知道如何转换为datetime的格式。
最先想到的办法当然是从网上找了,不过很可惜,找了很多方法都不见效。不过有一点提醒了我,在我找到的资料中提到,其中的一长串数据’1316756746000‘实际代表是毫秒。于是我想直接用毫秒生成日期了。具体做法如下:
1、过滤不需要的字符,如/和Date(等
var xx='/Date(1316756746000)/';
var tt=xx.substring(6,xx.length-2);
这样就得到如下结果
1316756746000
2、把毫秒转换为日期
var jsonDate=new Date(parseInt( xx.substring(6,xx.length-2)));//注意要先转换为int类型哟
3、把日期格式化为想要的格式,由于没有直接的格式化方法,所以采用了网上的公共方法。如下
Date.prototype.format = function(format){
var o =
{
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format))
format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
然后使用这个方法进行格式化
var result = jsonDate.format("yyyy年mm月dd日");
这时,再打印出来可以看到日期变成了 “2011年9月23日”。这就是我们想要的格式 了。
最先想到的办法当然是从网上找了,不过很可惜,找了很多方法都不见效。不过有一点提醒了我,在我找到的资料中提到,其中的一长串数据’1316756746000‘实际代表是毫秒。于是我想直接用毫秒生成日期了。具体做法如下:
1、过滤不需要的字符,如/和Date(等
var xx='/Date(1316756746000)/';
var tt=xx.substring(6,xx.length-2);
这样就得到如下结果
1316756746000
2、把毫秒转换为日期
var jsonDate=new Date(parseInt( xx.substring(6,xx.length-2)));//注意要先转换为int类型哟
3、把日期格式化为想要的格式,由于没有直接的格式化方法,所以采用了网上的公共方法。如下
Date.prototype.format = function(format){
var o =
{
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format))
format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
然后使用这个方法进行格式化
var result = jsonDate.format("yyyy年mm月dd日");
这时,再打印出来可以看到日期变成了 “2011年9月23日”。这就是我们想要的格式 了。
相关文章推荐
- json格式日期转换为自定义格式
- fastJson 转换日期格式
- Newtonsoft将对象或对象集合转换成JSON数据时,日期格式的设置
- Json 的日期格式与.Net DateTime类型的转换
- springboot @RequestBody使用JsonSerialize与 JsonDeserialize自定义转参数,处理Date日期格式
- 使用json.net 组件 生成JSON字符串,自定义日期格式
- 简单的分页存储过程,Json格式日期转换为一般日期
- 关于日期转换和自定义日期格式的问题(DateFormat)
- Json格式的字符串转换为正常显示的日期格式
- 使用Jackson时转换JSON时,日期格式设置
- 转换json格式的日期为Javascript对象
- 转换json格式的日期为Javascript对象的函数
- Spring Boot 日期数据格式转换@JsonFormat实例
- C#自定义将各种对象转换成JSON格式的类
- Json日期格式转换为正常格式
- 自定义JSON字符串类【map转换json格式】
- grails默认转换json日期格式
- 关于如何处理JSONObject.fromObject(Object obj)无法转换特殊日期(java.sql.Date,java.sql.Timestamp)格式的问题。
- Json 的日期格式与.Net DateTime类型的转换
- JSONObject.toBean中日期格式数据转换失效的解决办法! .