java时间戳转date(转)_weixin_34050389的博客-程序员秘密

技术标签: ViewUI  java  javascript  

1、时间戳的定义

时间戳(timestamp),通常是一个数字序列,唯一地标识某一刻的时间,指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的毫秒数。

数字时间戳技术是数字签名技术一种变种的应用。在电子商务交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。数字时间戳服务(DTS:digital time stamp service)是网上电子商务安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。

时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括三个部分:   

(1)需加时间戳的文件的摘要(digest);   

(2)DTS收到文件的日期和时间;   

(3)DTS的数字签名。   

一般来说,时间戳产生的过程为:用户首先将需要加时间戳的文件用Hash编码加密形成摘要,然后将该摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。   

书面签署文件的时间是由签署人自己写上的,而数字时间戳则不然,它是由认证单位DTS来加的,以DTS收到文件的时间为依据。

有时后台返回给我们的是时间戳,我们就需要转换一下才能展示

在easy-ui中

<div>
    <table class="easyui-datagrid" id="userList" title="会员列表"
           data-options="singleSelect:false,collapsible:true,pagination:true,url:'/rest/user/list',method:'get',pageSize:5,toolbar:toolbar,pageList:[2,5,10]">
        <thead>
        <tr>
            <th data-options="field:'ck',checkbox:true"></th>
            <th data-options="field:'id',width:60">ID</th>
            <th data-options="field:'userName',width:200">用户名</th>
            <th data-options="field:'name',width:100">姓名</th>
            <th data-options="field:'age',width:100">年龄</th>
            <th data-options="field:'sex',width:80,align:'right',formatter:formatSet">性别</th>
            <th data-options="field:'birthday',width:80,align:'right',formatter:formatBirthday">出生日期</th>
            <th data-options="field:'created',width:130,align:'center',formatter:formatDate">创建日期</th>
            <th data-options="field:'updated',width:130,align:'center',formatter:formatDate">更新日期</th>
        </tr>
        </thead>
    </table>
</div>
formatter:后面是我们自定义的函数名,不是内置的

<script type="text/javascript">
    function formatDate(val, row) {
        var now = new Date(val);
        return now.format("yyyy-MM-dd hh:mm:ss");
    }
    function formatBirthday(val, row) {
        var now = new Date(val);
        return now.format("yyyy-MM-dd");
    }
    function formatSet(val, row) {
        if (val == 1) {
            return "男";
        } else if (val == 2) {
            return "女";
        } else {
            return "未知";
        }
    }
    function getSelectionsIds() {
        var userList = $("#userList");
        var sels = userList.datagrid("getSelections");
        var ids = [];
        for (var i in sels) {
            ids.push(sels[i].id);
        }
        ids = ids.join(",");
        return ids;
    }
    var toolbar = [{
        text: '新增',
        iconCls: 'icon-add',
        handler: function () {
            $('#userAdd').window('open');
        }
    }, {
        text: '编辑',
        iconCls: 'icon-edit',
        handler: function () {
            $.messager.alert('提示', '该功能由学员自己实现!');
        }
    }, {
        text: '删除',
        iconCls: 'icon-cancel',
        handler: function () {
            var ids = getSelectionsIds();
            if (ids.length == 0) {
                $.messager.alert('提示', '未选中用户!');
                return;
            }
            $.messager.confirm('确认', '确定删除ID为 ' + ids + ' 的会员吗?', function (r) {
                if (r) {
                    $.post("/user/delete", {'ids': ids}, function (data) {
                        if (data.status == 200) {
                            $.messager.alert('提示', '删除会员成功!', undefined, function () {
                                $("#userList").datagrid("reload");
                            });
                        }
                    });
                }
            });
        }
    }, '-', {
        text: '导出',
        iconCls: 'icon-remove',
        handler: function () {
            var optins = $("#userList").datagrid("getPager").data("pagination").options;
            var page = optins.pageNumber;
            var rows = optins.pageSize;
            $("<form>").attr({
                "action": "/user/export/excel",
                "method": "POST"
            }).append("<input type='text' name='page' value='" + page + "'/>")
                    .append("<input type='text' name='rows' value='" + rows + "'/>").submit();
        }
    }];
</script>
function formatDate(val, row) {
    var now = new Date(val);
    return now.format("yyyy-MM-dd hh:mm:ss");
}

上面的Date对象是js的内置对象,但是Date对象没有format方法!!!

以后可能会遇到这种问题,我们需要用到js内置对象的某些方法,但是我们发现这些内置对象没有这些方法!,咋办呢?我们自己来扩展

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; 
};

 时间戳处理

2、时间戳转化为Date(or String)

public class Test {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Long time = new Long(460742400000L);

        String toString = format.format(time);

        Date toDate = format.parse(toString);

        System.out.println("Format To String:" + toString);

        System.out.println("Format To Date:" + toDate);
    }
}

运行结果:

Format To String:1984-08-08 00:00:00
Format To Date:Wed Aug 08 00:00:00 CST 1984

3、Date(or String)转化为时间戳

public class Test {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat format =  new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );

        String time="2016-11-06 11:45:55";

        Date date = format.parse(time);

        System.out.print("Format To timestamp:" + date.getTime());
    }
}

运行结果:

Format To times:1478403955000

4、注意

   定义SimpleDateFormat时new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" );里面字符串头尾不能有空格

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34050389/article/details/85828789

智能推荐

使STL容器线程安全的类(转载)_flyaflya的博客-程序员秘密

C++ code colored by C++2HTML.comment { color: #999999; font-style: italic; }.pre { color: #000099; }.string { color: #009900; }.char { color: #009900; }.float { color: #996600;

matlab中mean 函数的用法_mean函数matlab_爱编程的小屁孩的博客-程序员秘密

如果A是一个向量,mean(A)返回A中各元素的平均值;如果A是一个矩阵,mean(A)返回的是每一列所有元素的平均值的行向量;M=mean(A,dim)返回A中沿着标量dim指定的维数上的元素的平均值。对于矩阵,mean(A,2)就是包含每一列的平均值的列向量;A = [1 2 3; 3 3 6; 4 6 8; 4 7 7];mean(A,1)ans =3.0000 4.5000 ...

USB Camera摄像头 UVC 驱动_usb2.0 hd uvc webcam_haima1998的博客-程序员秘密

我的摄像头终于出现图像了! 李迟按:本文章不是教程,不是心得总结,而是记录我在做毕业设计过程中遇到的一些问题,以及怎么去解决(有些还是没有解决)。可能UVC 驱动的代码在linux-3.7.2\drivers\media\usb\uvc 中带有牢骚,可能带有某些让人不悦的话。希望大家见谅。 今晚很高兴,捣鼓了几天,郁闷了几天的事,今天解决

GCS_WGS_1984 是什么意思_iteye_6481的博客-程序员秘密

世界级地理坐标系,即WGS84:World Geodetic System 1984,是为GPS全球定位系统使用而建立的坐标系统。也是全球所有卫星所用的坐标系统,主要参数是地球经纬度。 BingMap和GoogleMap坐标系都是用的这个坐标系。...

CentOS8.2 详细安装、配置Spark3.0.0教程(Pyspark)亲自测试_叼奶嘴的超人的博客-程序员秘密

sudo passwd:更改root密码su:可以直接切换root密码yum install -y updateyum groupinstall -y 'Development Tools'yum install -y gcc openssl-devel bzip2-devel libffi-develyum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel--------------------------

python入门指南 许半仙txt百度云-《漩涡》TXT全本 百度云网盘下载 by就不告诉你..._weixin_37988176的博客-程序员秘密

卧底美人年下攻 X 黑道俊朗受因为这是小短篇,不宜说太多。我找了很久这种卧底攻,黑道大佬受的,这篇写得还可以吧,设定真的很不错,但还是没有达到我想要的那种相爱相杀的感觉,矛盾冲突不够多。受被一个黑道大佬捡回去,之后就一直帮他做事,成为了他的左右手。攻是卧底,在受的地盘上做服务员,被受一眼就惦记上了。受的手下为了讨好受,给攻下药送到受的房间,谁知道是受被吃了。攻就留在他身边照顾他,渐渐地都对对方有点...

随便推点

three.js后期处理-使用MaskPass掩膜通道实现多个场景中地球与火星使用不同后期处理效果,不同场景的物体在同一屏幕展示(vue中使用three.js86)_点燃火柴的博客-程序员秘密

使用MaskPass掩膜通道实现多个场景中地球与火星使用不同后期处理效果1.demo效果2. 重要知识点2.1 MaskPass通道介绍2.2 MaskPass通道使用注意事项3. 实现要点3.1 相关文件引入3.2 创建多个场景3.3 不同场景添加光源3.4 创建效果组合器4. demo代码1.demo效果如上图,demo中背景、地球和火星使用了不同后期处理通道,最终将不同场景下的物体展示在同一屏幕2. 重要知识点2.1 MaskPass通道介绍MaskPass 通道称为 掩膜通道,用于限定后

yarn application日志查看_yarn日志怎么看报错_'煎饼侠的博客-程序员秘密

Yarn application 日志查看方式一:正在运行任务,可以在任务启动后或者在yarn application UI页面找到applicationId,然后在服务器上查看:yarn logs -applicationId ***方式二:已完成任务点击applicationId进去查看log方式三:在yarn-site.xml配置文件里查看log的位置,然后可以直接在浏览器上看log详情Flink任务日志查看方式一:任务启动后直接在linux上看打印出...

STK SIM TOOL KIT_数字货币stk_lizzywu的博客-程序员秘密

STK(SIM TOOL KIT),简称“用户识别应用发展工具”,可以理解为一组开发增值业务的命令,一种小型编程语言,它允许基于智能卡的用户身份识别模块SIM运行自己的应用软件。   STK卡不是一般的通常使用的SIM卡,而是基于Java语言平台的Simera32K卡片。STK是一种小型编程语言的软件,可以固化在SIM卡中。它能够接收和发送GSM的短消息数据,起到SIM卡与短消息之间的接口的作用,

Unicode 与 UTF-8_weixin_33725239的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release_gpg error:http_晚餐男孩的博客-程序员秘密

使用sudo apt update的时候出现下面的错误:W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures couldn't be verified because the public key is not available: ...

阿里云Cent OS服务器搭建环境jdk1.7+mysql+tomcat7.0_阿里云os7.0_mxw968的博客-程序员秘密

第一步:连接服务器由于是在阿里云上租的服务器,所以我连接服务器用了两种方式 方式一:直接在阿里云上选择远程连接 方式二:通过Secure CRT连接远程桌面,利用Secure CRT连接远程桌面时,将选项->会话选项->外观中的字符编码修改为UTF-8可防止中文乱码第二步:搭建环境   1、 搭建jdk(1)在本机下好jdk,版本为jdk-7u80-linux-x64,通过FTP将jdk上传至服

推荐文章

热门文章

相关标签