Java的时间类型数据使用Json字符串传输时变成一串数字的解决方法

来源:互联网 发布:网络网警客服在线电话 编辑:程序博客网 时间:2024/06/16 09:01

终于有时间来写一下这几天的收获了,这几天一直在帮一个研究生完成他的毕业设计,他的毕业设计主要是做一个灌溉系统,该项目使用SSM框架开发,但我还没有系统学习框架,之前对于一个需求都是严格按照MVC设计模式,不采用框架来搭建系统,使用的都是单纯的Servlet程序处理请求,并没有通过框架的自动注入和映射等方式来编写代码,因为我觉得框架只是一个工具,基础打好了,框架的内部实现原理其实都是原生的Servlet程序,只不过为提高开发效率而采用框架这种工具而已。

        瞎逼逼了那么久,来进入正题,前天在实现获取数据库的数据并将其转换json字符串进行传输时发现数据库里保存的时间类型的数据如“2017-08-02 17:48:41”,变成了一串令人费解的一串数字,如下图的“cTime”就是数据库里保存的时间类型数据。

        

      好吧,虽然不太清楚内部原因,但是既然是在转化为json串时改变了形式,那么想办法把这个数字串转换为需要的类型再输出就行。由于解析json字符串采用的是JavaScript代码,因此这里只展示js代码的处理方式。先把代码贴出来吧,在代码里写明了思路和转换方法,就不一一在下文分析了,有更好见解的麻烦提出来哟。

       <script type="text/javascript"> 
               //改变时间
       function transferTime(cTime) {
       //将json串的一串数字进行解析
       var jsonDate = new Date(parseInt(cTime));
       alert(jsonDate);
       //为Date对象添加一个新属性,主要是将解析到的时间数据转换为我们熟悉的“yyyy-MM-dd hh:mm:ss”样式
       Date.prototype.format = function(format) {
       var o = {

       //获得解析出来数据的相应信息,可参考js官方文档里面Date对象所具备的方法

       "y+" : this.getFullYear(),//得到对应的年信息
       "M+" : this.getMonth() + 1, //得到对应的月信息,得到的数字范围是0~11,所以要加一
       "d+" : this.getDate(), //得到对应的日信息
       "h+" : this.getHours(), //得到对应的小时信息 
       "m+" : this.getMinutes(), //得到对应的分钟信息
       "s+" : this.getSeconds(), //得到对应的秒信息
 
   }

     //将年转换为完整的年形式
    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 newDate = jsonDate.format("yyyy-MM-dd hh:mm:ss");
return newDate;
}        
        //调用该函数,传入的参数为json字符串形式的时间值
         alert(transferTime("1501665896000"));
</script>

    

       这是解析json数字串得到的时间数据格式:


      

      

      这是通过转换后时间数据格式,明显被转换过来了:


    


    


阅读全文
0 0
原创粉丝点击