java时间戳与Date相互转化

   

1、时间戳的定义

 

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

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

编辑本段组成部分

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

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

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

  (3)DTS的数字签名。  

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

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

 

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

 

复制代码
1 //时间戳转化为Sting或Date  
2 SimpleDateFormat format =  newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
3 Long time=newLong(445555555);  
4 String d = format.format(time);  
5 Date date=format.parse(d);  
6 System.out.println("Format To String(Date):"+d);  
7 System.out.println("Format To Date:"+date);  
复制代码

 运行结果:

1 Format To String(Date):1970-01-06 11:45:55
2 Format To Date:Tue Jan 06 11:45:55 CST 1970

 

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

 

1 //Date或者String转化为时间戳  
2 SimpleDateFormat format =  newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
3 String time="1970-01-06 11:45:55";  
4 Date date = format.parse(time);  
5 System.out.print("Format To times:"+date.getTime());  

运行结果:

1 Format To times:445555000

 

4、注意

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

 

1 //Date或者String转化为时间戳  
2 SimpleDateFormat format =  newSimpleDateFormat(" yyyy-MM-dd HH:mm:ss ");  
3 String time="1970-01-06 11:45:55";  
4 Date date = format.parse(time);  
5 System.out.print("Format To times:"+date.getTime());  

 

运行结果(报错):

Exception in thread "main"Java.text.ParseException: Unparseable date: "1970-01-06 11:45:55"

改正:

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

 

1 SimpleDateFormat format =  newSimpleDateFormat(" yyyy-MM-dd HH:mm:ss ");  
2 String time=" 1970-01-06 11:45:55 ";//注:改正后这里前后也加了空格  
3 Date date = format.parse(time);  
4 System.out.print("Format To times:"+date.getTime());  

  运行结果:

1 Format To times:445555000

 

 

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

复制代码
 1 import java.text.ParseException;  
 2 import java.text.SimpleDateFormat;  
 3 import java.util.Date;  
 4       
 5 public class Baidu {  
 6       
 7 /** 
 8 * @param args 
 9 */  
10 public static void main(String[] args) {  
11   try {  
12     String time = "2011/07/29 14:50:11";  
13     Date date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(time);  
14     long unixTimestamp = date.getTime()/1000;  
15     System.out.println(unixTimestamp);  
16     } catch (ParseException e) {  
17     e.printStackTrace();  
18     }  
19   }  
20 } 
复制代码

 

posted on   胡子就不刮  阅读(301)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示