时间戳

来源:互联网 发布:wps表格怎么引用数据 编辑:程序博客网 时间:2024/06/06 05:20

一、基本概念

  定义:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

  时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。

二、Java中的时间戳

  Java中的java.util.Date为我们提供了操作时间的一系列操作,当然也提供了获取时间戳的方法,我们可以调用Date对象的getTime() 方法来返回当前对象的时间戳。需要注意的是时间戳是以毫秒为单位的,也就是说Java的时间戳的精确度在毫秒级别。而unix中时间戳是精确到秒级别,所以我们参考一些资料的时候会出现/1000(除以1000)的情况,将Java的时间戳的级别精确到秒所有要去除后三位即可,也就是除以1000了。

示例一:获取当前时间的时间戳

@Testpublic void test() {SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式Date timeOfNow = new Date();// 获取当前系统时间String strTime = dateFormate.format(timeOfNow);// 格式化时间System.out.println("当前时间为:" + strTime);// 输出当前时间Long strTimeStamp = timeOfNow.getTime();// 获取时间的时间戳System.out.println("当前时间的时间戳为:" + strTimeStamp);// 输出当前时间的时间戳}

运行结果为:

当前时间为:2017-05-10 23:52:19
当前时间的时间戳为:1494431539619

示例二:将时间戳转换为Date对象

@Testpublic void test() {SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式Long timeStamp = new Long("1494431539619");// 定义时间戳String formateStampToString = dateFormate.format(timeStamp);// 将时间戳转换为字符串类型的DateSystem.out.println("Format To String(Date):" + formateStampToString);try {Date formateStampToDate = dateFormate.parse(formateStampToString);// 将字符串转换为Date类型System.out.println("Format To Date:" + formateStampToDate); // 输出Date} catch (ParseException e) {e.printStackTrace();}}
运行结果为:

Format To String(Date):2017-05-10 23:52:19
Format To Date:Wed May 10 23:52:19 CST 2017
示例三:Date(or String)转化为时间戳

@Testpublic void test() {SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式String time = "1970-01-06 11:45:55";try {Date date = dateFormate.parse(time);System.out.print("Format To times:" + date.getTime());} catch (ParseException e) {e.printStackTrace();}}
运行结果为:Format To times:445555000

注意事项:定义SimpleDateFormat时newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");里面字符串头尾不能有空格,如果有空格那么用做转换时对应的时间字符串也要有空格(两者是对应的),否则会报错,报错信息如下:

java.text.ParseException: Unparseable date: "1970-01-06 11:45:55"at java.text.DateFormat.parse(DateFormat.java:366)...

三、数据库中的时间戳

3.1 MySQL获得当前时间戳函数

函数为:current_timestamp, current_timestamp()

示例:

select current_timestamp, current_timestamp();

注意:此时输出的时间戳不是总秒数,而是当前的时间。

3.2 MySQL (Unix 时间戳、日期)转换函数

获取Unix时间戳函数:

  • unix_timestamp();//获取当前时间的时间戳
  • unix_timestamp(date);//获取指定时间所对应的时间戳

将时间戳转换为时间:

  • from_unixtime(unix_timestamp);
  • from_unixtime(unix_timestamp,format);//指定转换时间的格式

示例:

select unix_timestamp(); -- 1218290027select unix_timestamp('2008-08-08'); -- 1218124800select unix_timestamp('2008-08-08 12:30:00'); -- 1218169800select from_unixtime(1218290027); -- '2008-08-09 21:53:47'select from_unixtime(1218169800, '%Y %D %M %h:%i:%s %x'); -- '2008 8th August 12:30:00 2008'
  其它详细的函数就不在此赘述了,详见MySQL的API。

3.3 timestamp数据类型

  timestamp 这种数据类型表现为自动生成,Mysql中其默认值为CURRENT_TIMESTAMP,也就是上面所提及的获取当前时间戳的函数,每当更新数据时其会自动进行更新。

  timestamp 一般用作给表中行加版本戳。存储大小为 8 字节。 虽然timestamp 显示格式与datetime的显示格式完全一样,换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS。其差异可参考:MySQL中的datetime与timestamp比较

  看到这里,您是否对给表加版本戳感到疑惑,其实我也想更加细化的弄明白它,所以写下了下面这篇博客可供参考:Hibernate事务中的加锁机制

&#8195&#8195

参考资料:

java_时间戳与Date_相互转化

************************************************************************结束语************************************************************************
  我在写这篇博客的时候也是一名初学者,有任何疑问或问题请留言,或发邮件也可以,邮箱为:fanxiaobin.fxb@qq.com,我会尽早的进行更正及更改。
在我写过的博客中有两篇博客是对资源的整理,可能对大家都有帮助,大家有兴趣的话可以看看!!
下载资料整理——目录:http://blog.csdn.net/fanxiaobin577328725/article/details/51894331
  这篇博客里面是我关于我见到的感觉不错的好资源的整理,里面包含了书籍及源代码以及个人搜索的一些资源,如果有兴趣的可以看看,我会一直对其进行更新和添加。
优秀的文章&优秀的学习网站之收集手册:http://blog.csdn.net/fanxiaobin577328725/article/details/52753638
  这篇博客里面是我对于我读过的,并且感觉有意义的文章的收集整理,纯粹的个人爱好,大家感觉有兴趣的可以阅读一下,我也会时常的对其进行更新。
************************************************************************感谢************************************************************************

0 0
原创粉丝点击