概念: 
UNIX时间戳:Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp) 
是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。 
UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z. 
一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。 
在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题或Y2038。

时间 秒 
1 分钟 60 秒 
1 小时 3600 秒 
1 天 86400 秒 
1 周 604800 秒 
1 月 (30.44 天) 2629743 秒 
1 年 (365.24 天) 31556926 秒

思考: 
为什么使用UNIX时间戳? 
在现在的系统中经常遇到跨数据库的应用开发,在数据库系统中不同的数据库对与时间类型却有不同解释,比如ORACLE的date和MYSQL里面的date就不能直接兼容转换,数据方面还可以使用数据迁移工具进行转换,但是对与应用来说那就是灾难(在这不谈hibernate等可以垮数据库的框架)。 
为了实现垮平台在应用系统中记录时间的时候我们就可以使用记录UNIX时间戳的方法做到垮平台性。 
现在大多数的语言java、PHP、Perl等都支持直接取UNIX时间戳,将需要记录的时间记录为UNIX时间戳,这样就可以不同的数据库系统中的垮平台性,对与时间的操作只要对时间戳操作就行了。其实这样的处理方法在很多开源的系统中都能看到,但是对与经常搞J2EE的人来说很不习惯.

处理:

  下面简单介绍下相关处理的方法:
  • 1
  • 2

================================获取系统UNIX时间戳=======================================

Perl time 
PHP time() 
Ruby Time.now (or Time.new). To display the epoch: Time.now.to_i 
Python import time first, then time.time() 
Java long epoch = System.currentTimeMillis()/1000; 
Microsoft .NET C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; 
VBScript/ASP DateDiff(“s”, “01/01/1970 00:00:00”, Now()) 
MySQL SELECT unix_timestamp(now()) 
PostgreSQL SELECT extract(epoch FROM now()); 
SQL Server SELECT DATEDIFF(s, ‘19700101’, GETDATE()) 
JavaScript Math.round(new Date().getTime()/1000.0) getTime() returns time in milliseconds. 
Unix/Linux date +%s 
Other OS’s Command line: perl -e “print time” (If Perl is installed on your system)

================================将时间转换成UNIX时间戳=======================================

Perl Use these Perl Epoch routines 
PHP mktime(hour, minute, second, month, day, year) More information 
Ruby Time.local(year, month, day, hour, minute, second, usec ) (or Time.gm for GMT/UTC input). To display add .to_i 
Python import time first, then int(time.mktime(time.strptime(‘2000-01-01 12:34:00’, ‘%Y-%m-%d %H:%M:%S’))) 
Java long epoch = new java.text.SimpleDateFormat (“dd/MM/yyyy HH:mm:ss”).parse(“01/01/1970 01:00:00”); 
VBScript/ASP DateDiff(“s”, “01/01/1970 00:00:00”, time field) More information 
MySQL SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD More information 
PostgreSQL SELECT extract(epoch FROM date(‘2000-01-01 12:34’)); 
With timestamp: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE ‘2001-02-16 20:38:40-08’); 
With interval: SELECT EXTRACT(EPOCH FROM INTERVAL ‘5 days 3 hours’); 
SQL Server SELECT DATEDIFF(s, ‘19700101’, time field) 
JavaScript use the JavaScript Date object 
Unix/Linux date +%s -d”Jan 1, 1980 00:00:01”

================================将UNIX时间戳转换成时间=======================================

Perl Use these Perl Epoch routines 
PHP date(output format, epoch); Output format example: ‘r’ = RFC 2822 date More information 
Ruby Time.at(epoch) 
Python import time first, then time.gmtime(epoch) time is an array of year, month, day, hour, min, sec, day of week, day of year, DST More information 
Java String date = new java.text.SimpleDateFormat(“dd/MM/yyyy HH:mm:ss”).format(new java.util.Date (epoch*1000)); 
VBScript/ASP DateAdd(“s”, epoch, “01/01/1970 00:00:00”) More information 
PostgreSQL SELECT TIMESTAMP WITH TIME ZONE ‘epoch’ + epoch * INTERVAL ‘1 second’; 
MySQL from_unixtime(epoch, optional output format) The default output format is YYY-MM-DD HH:MM:SS More information 
SQL Server DATEADD(s, epoch, ‘19700101’) 
JavaScript use the JavaScript Date object 
Linux date -d @1190000000 (replace 1190000000 with your epoch, needs newer version of date) 
Other OS’s Command line: perl -e “print scalar(localtime(epoch))” (If Perl is installed) Replace ‘localtime’ with ‘gmtime’ for GMT/UTC time.

转自:http://hi.baidu.com/xzeus/blog/item/823dd1001f2d6217738b6510.html

from_unixtime()是MySQL里的时间函数,将时间戳转换成日期 
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串 
后面的 ‘%Y%m%d’ 主要是将返回值格式化 
例如: 
mysql>SELECT FROM_UNIXTIME( 1249488000, ‘%Y%m%d’ ) 
->20071120 
mysql>SELECT FROM_UNIXTIME( 1249488000, ‘%Y年%m月%d’ ) 
->2007年11月20

UNIX_TIMESTAMP() 是与之相对正好相反的时间函数,将日期转换成时间戳 
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date) 
  若无参数调用,则返回一个 Unix timestamp (‘1970-01-01 00:00:00’ GMT 之后的秒数) 作为无符号整数。若用date 来调用 UNIX_TIMESTAMP(),它会将参数值以’1970-01-01 00:00:00’ GMT后的秒数的形式返回。date 可以是一个 DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。 
例如: 
mysql> SELECT UNIX_TIMESTAMP() ; (执行使得时间:2009-08-06 10:10:40) 
->1249524739 
mysql> SELECT UNIX_TIMESTAMP(‘2009-08-06’) ; 
->1249488000 
SELECT * 
FROM student 
WHERE regTime > UNIX_TIMESTAMP( curdate( ) ) //今天所有学生注册记录。

Unix时间戳(Unix timestamp)转换工具:

http://tool.chinaz.com/Tools/unixtime.aspx

参考:http://blog.csdn.net/chenxiaodan_danny/article/details/51120291

为什么要使用Unix时间戳的更多相关文章

  1. C#中DateTime.Ticks属性及Unix时间戳转换

    1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...

  2. Unix时间戳

    Unix时间戳 http://www.linuxidc.com/Linux/2016-01/127572.htm 这里的时间戳,指的就是Unix时间戳(Unix timestamp).它也被称为Uni ...

  3. js 取得 Unix时间戳(Unix timestamp)

    js 取得 Unix时间戳 Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间19 ...

  4. Java 获取 Unix时间戳

    unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒. 在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题. 但是,因为需求是需要int类 ...

  5. Unix时间戳转换怎样在Excel批量修改?

    最近在操作项目的时候碰到一个Unix时间戳转换的问题."date_time":1393031347这个是什么,你知道吗?如果你对Unix时间戳了解的话一眼就看出来.但我们本着科普的 ...

  6. C# DateTime时间格式转换为Unix时间戳格式

    double ntime=dateTimeToUnixTimestamp(DateTime.Now); long g1 = GetUnixTimestamp(); long g2 = ConvertD ...

  7. 时间:UTC时间、GMT时间、本地时间、Unix时间戳

    转自:http://blog.csdn.net/u012102306/article/details/51538574 1.UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT ...

  8. 简述unix时间戳

    unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒. Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix ti ...

  9. 如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)

    Java time JavaScript Math.round(new Date().getTime()/1000)getTime()返回数值的单位是毫秒 Microsoft .NET / C# ep ...

  10. Unix时间戳与C# DateTime时间类型互换

    Unix时间戳最小单位是秒,开始时间为格林威治标准时间1970-01-01 00:00:00ConvertIntDateTime方法的基本思路是通过获取本地时区表示Unixk开始时间,加上Unix时间 ...

随机推荐

  1. PHP中16个高危函数

    php中内置了许许多多的函数,在它们的帮助下可以使我们更加快速的进行开发和维护,但是这个函数中依然有许多的函数伴有高风险的,比如说一下的16个函数不到万不得已不尽量不要使用,因为许多“高手”可以通过这 ...

  2. php为什么要用swoole?

    最近两个月一直在研究 Swoole,那么借助这篇文章,我希望能够把 Swoole 安利给更多人.虽然 Swoole 可能目前定位是一些高级 phper 的玩具,让中低级望而生畏,可能对一些应用场景也一 ...

  3. Java设计模式之鸭子模式

    这两天在看HeadFirst设计模式,第一种鸭子模式都不太理解.后来在百度知道上看了某大神的解释 明白了不少. 列出如下: 假设我们需要设计出各种各样的鸭子,一边游泳戏水, 一边呱呱叫.很明显这时我们 ...

  4. IDEA连接Redis

    1.创建一个Maven项目 2.在src下的pom.xml文件里,添加相关包引用 <?xml version="1.0" encoding="UTF-8" ...

  5. PHP+Redis实现延迟任务,实现自动取消与完成订单

    简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) : (A)业务场景: 1.当一个业务触发以后需要启动一个定时任务,在指定时间内再去执行一个任务( ...

  6. 各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)

    前言 这里讨论的优化问题指的是,给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小. 本文以下内容假设读者已经了解机器学习基本知识,和梯度下降的原理. Batch gradient d ...

  7. python网络爬虫之入门[一]

    目录 前言 一.探讨什么是python网络爬虫? 二.一个针对于网络传输的抓包工具fiddler 三.学习request模块来爬取第一个网页 * 扩展内容(爬取top250的网页) 后记 @(目录) ...

  8. insertBefore()

    insertBefore()方法将把一个给定的节点插入到一个给定元素节点的给定子节点前面,他返回一个指向新增子节点的引用指针: reference = element.insertBefore(new ...

  9. salesforce lightning零基础学习(十六) 公用组件之 获取字段label信息

    我们做的项目好多都是多语言的项目,针对不同国家需要展示不同的语言的标题.我们在classic中的VF page可谓是得心应手,因为系统中已经封装好了我们可以直接在VF获取label/api name等 ...

  10. Process用法与进程详解

    僵尸与孤儿进程 僵尸进程:父进程的子进程结束的时候父进程没有wait()情况下子进程会变成僵尸进程 孤儿进程(无害) 一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程.孤儿 ...