900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java中date和时间戳相互转换以及获取前一个小时的时间

java中date和时间戳相互转换以及获取前一个小时的时间

时间:2020-05-08 10:28:47

相关推荐

java中date和时间戳相互转换以及获取前一个小时的时间

1、时间戳是指文件属性里的创建、修改、访问时间。

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

编辑本段组成部分

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

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

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

(3)DTS的数字签名。

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

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

2、时间戳转化为Date(orString)

[java]view plaincopy//时间戳转化为Sting或Date SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Longtime=newLong(445555555); Stringd=format.format(time); Datedate=format.parse(d); System.out.println("FormatToString(Date):"+d); System.out.println("FormatToDate:"+date);

运行结果:

FormatToString(Date):1970-01-0611:45:55

FormatToDate:TueJan0611:45:55CST1970

3、Date(orString)转化为时间戳

[java]view plaincopy//Date或者String转化为时间戳 SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringtime="1970-01-0611:45:55"; Datedate=format.parse(time); System.out.print("FormatTotimes:"+date.getTime());

运行结果:

FormatTotimes:445555000

4、注意

定义SimpleDateFormat时newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");里面字符串头尾不能有空格,有空格那是用转换时对应的时间空格也要有空格(两者是对应的),比如:

[java]view plaincopy//Date或者String转化为时间戳 SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringtime="1970-01-0611:45:55"; Datedate=format.parse(time); System.out.print("FormatTotimes:"+date.getTime());

运行结果(报错):

Exceptioninthread"main"java.text.ParseException:Unparseabledate:"1970-01-0611:45:55"

改正:

//Date或者String转化为时间戳

[java]view plaincopySimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringtime="1970-01-0611:45:55";//注:改正后这里前后也加了空格 Datedate=format.parse(time); System.out.print("FormatTotimes:"+date.getTime());

运行结果:

FormatTotimes:445555000

一、java中Date类中的getTime()是获取时间戳的,java中生成的时间戳精确到毫秒级别,而unix中精确到秒级别,所以通过java生成的时间戳需要除以1000。

二、下面是java代码

[java]view plaincopyimportjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Date; publicclassBaidu{ /** *@paramargs */ publicstaticvoidmain(String[]args){ try{ Stringtime="/07/2914:50:11"; Datedate=newSimpleDateFormat("yyyy/MM/ddHH:mm:ss").parse(time); longunixTimestamp=date.getTime()/1000; System.out.println(unixTimestamp); }catch(ParseExceptione){ e.printStackTrace(); } } } 最后是获取特定时间或当前时间的前一个小时的时间:

//时间和时间戳相互转换SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String t = "-03-22 11:16:36"; Date date = df.parse(t);long time1 = (date.getTime()/1000) - 3600;System.out.println("((((((((((((((" + t);System.out.println(">>>>>>>>>>>>>>" + date.getTime());System.out.println("{{{{{{{{{{{{{{" + date.getTime()/1000);System.out.println("==============" + time1);long w = (time1 * 1000);String date1 = df.format(w);System.out.println("??????????????" + date1);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。