当前位置: 代码迷 >> Java Web开发 >> 时间戳经json后长度不对,如何解决
  详细解决方案

时间戳经json后长度不对,如何解决

热度:483   发布时间:2016-04-11 00:00:37.0
时间戳经json后长度不对,怎么解决?
是这样,
我一个Timestamp型数据 比如 2013-10-16 11:50:00
经json转化后传递到js里 长度不对。
正常是13818954000 但转换后确多了2个0
由于结构,在action这层转化不现实,只得在js里面转换。
开始想到多2个0,我可以截取,但我试了其他时间 长度都不一样

现在碰到的问题是  转换过后的 字符串型,怎么知道多长才是正确的?
timestamp json js

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

是这样,
我一个Timestamp型数据 比如 2013-10-16 11:50:00
经json转化后传递到js里 长度不对。
正常是13818954000 但转换后确多了2个0
由于结构,在action这层转化不现实,只得在js里面转换。
开始想到多2个0,我可以截取,但我试了其他时间 长度都不一样

现在碰到的问题是  转换过后的 字符串型,怎么知道多长才是正确的?

正常转化的话应该不会多两个0的,所以很想知道你转换的方式。。。

我感觉你的问题应该是输入格式不一样,
比如有的输入2013-10-16 11:50:00
有的输入
2013年10月25日22:07:19
这样吧。导致导出不一样?
JS中timestamp的转换成data
http://blog.163.com/lijy_980720@126/blog/static/75574626201261783343834/


输入格式没问题 ,我只是一个对象,里面有这个属性的字段,然后是多个此类对象 放在list里,
直接通过JSONArray jsonArray = JSONArray.fromObject(list);转的,打印出来的就多0

你把这一段的代码发上来我测试下,我相信json不会犯这么低级的错误,转换时间后竟然多两个0.
即使多个对象,也会以,来分开的


list1 = tar.queryor(); //这是查询一层,是没问题的

JSONArray jsonArray = JSONArray.fromObject(list1); //这是转换
比如CreateTime字段 :
System.out.println(list1.get(1).getCreateTime());
          打印结果为:2013-10-16 11:50:00.0
                System.out.println(jsonArray);
打印结果(CreateTime字段): "createTime":{"date":16,"day":3,"hours":11,"minutes":50,"month":9,"nanos":0,"seconds":0,"time":1381895400000,"timezoneOffset":-480,"year":113},
                 




JSONArray jsonArray = JSONArray.fromObject(list1); //这是转换


引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

是这样,
我一个Timestamp型数据 比如 2013-10-16 11:50:00
经json转化后传递到js里 长度不对。
正常是13818954000 但转换后确多了2个0
由于结构,在action这层转化不现实,只得在js里面转换。
开始想到多2个0,我可以截取,但我试了其他时间 长度都不一样

现在碰到的问题是  转换过后的 字符串型,怎么知道多长才是正确的?

正常转化的话应该不会多两个0的,所以很想知道你转换的方式。。。

我感觉你的问题应该是输入格式不一样,
比如有的输入2013-10-16 11:50:00
有的输入
2013年10月25日22:07:19
这样吧。导致导出不一样?
JS中timestamp的转换成data
http://blog.163.com/lijy_980720@126/blog/static/75574626201261783343834/


输入格式没问题 ,我只是一个对象,里面有这个属性的字段,然后是多个此类对象 放在list里,
直接通过JSONArray jsonArray = JSONArray.fromObject(list);转的,打印出来的就多0

你把这一段的代码发上来我测试下,我相信json不会犯这么低级的错误,转换时间后竟然多两个0.
即使多个对象,也会以,来分开的


list1 = tar.queryor(); //这是查询一层,是没问题的

JSONArray jsonArray = JSONArray.fromObject(list1); //这是转换
比如CreateTime字段 :
System.out.println(list1.get(1).getCreateTime());
          打印结果为:2013-10-16 11:50:00.0
                System.out.println(jsonArray);
打印结果(CreateTime字段): "createTime":{"date":16,"day":3,"hours":11,"minutes":50,"month":9,"nanos":0,"seconds":0,"time":1381895400000,"timezoneOffset":-480,"year":113},
                 




JSONArray jsonArray = JSONArray.fromObject(list1); //这是转换
这里,你把输入的
list1的值
和输出的jsonArray的值
发出来


list的值 我就直接在数据库查询了 请注意那个图片 

晕死,让你忽悠了我一下午。。。
1381895400000
就是正确的。。。

运行
long time = new Date().getTime();
System.out.println(time);
结果:
1382792101357
都是十四位的。。。
我说JS不会转换错嘛。

好吧  那我在js里 能得到这个1381895400000
  但是怎么转换成20xx-xx-xx xx:xx格式...


输入时间,格式,转化为字符串。。

<script language="javascript">
function gettimestr()
{
var time=formartDate("yyyy-MM-dd hh:mm:ss",1381895400000);//这里输入格式和时间
  相关解决方案