什么是Unix时间戳(Unix timestamp)?
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。
目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒(二进制:01111111 11111111 11111111 11111111)。其后一秒,二进制数字会变为10000000 00000000 00000000 00000000,发生溢出错误,造成系统将时间误解为1901年12月13日20时45分52秒。这很可能会引起软件故障,甚至是系统瘫痪。使用64位二进制数字表示时间的系统(最多可以使用到格林威治时间292,277,026,596年12月04日15时30分08秒)则基本不会遇到这类溢出问题。
如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?
| Java | time |
| JavaScript | Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒 |
| Microsoft .NET / C# | epoch = (DateTime.Now.ToUniversalTime().Ticks – 621355968000000000) / 10000000 |
| MySQL | SELECT unix_timestamp(now()) |
| Perl | time |
| PHP | time() |
| PostgreSQL | SELECT extract(epoch FROM now()) |
| Python | 先 import time 然后 time.time() |
| Ruby | 获取Unix时间戳:Time.now 或 Time.new
显示Unix时间戳:Time.now.to_i |
| SQL Server | SELECT DATEDIFF(s, ‘1970-01-01 00:00:00′, GETUTCDATE()) |
| Unix / Linux | date +%s |
| VBScript / ASP | DateDiff(“s”, “01/01/1970 00:00:00″, Now()) |
| 其他操作系统
(如果Perl被安装在系统中) |
命令行状态:perl -e “print time” |
如何在不同编程语言中实现Unix时间戳(Unix timestamp) → 普通时间?
| Java | String date = new java.text.SimpleDateFormat(“dd/MM/yyyy HH:mm:ss”).format(new java.util.Date(Unix timestamp * 1000)) |
| JavaScript | 先 var unixTimestamp = new Date(Unix timestamp * 1000) 然后 commonTime = unixTimestamp.toLocaleString() |
| Linux | date -d @Unix timestamp |
| MySQL | from_unixtime(Unix timestamp) |
| Perl | 先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6] |
| PHP | date(‘r’, Unix timestamp) |
| PostgreSQL | SELECT TIMESTAMP WITH TIME ZONE ‘epoch’ + Unix timestamp) * INTERVAL ‘1 second’; |
| Python | 先 import time 然后 time.gmtime(Unix timestamp) |
| Ruby | Time.at(Unix timestamp) |
| SQL Server | DATEADD(s, Unix timestamp, ‘1970-01-01 00:00:00′) |
| VBScript / ASP | DateAdd(“s”, Unix timestamp, “01/01/1970 00:00:00″) |
| 其他操作系统
(如果Perl被安装在系统中) |
命令行状态:perl -e “print scalar(localtime(Unix timestamp))” |
如何在不同编程语言中实现普通时间 → Unix时间戳(Unix timestamp)?
| Java | long epoch = new java.text.SimpleDateFormat(“dd/MM/yyyy HH:mm:ss“).parse(“01/01/1970 01:00:00″); |
| JavaScript | var commonTime = new Date(Date.UTC(year, month – 1, day, hour, minute, second)) |
| MySQL | SELECT unix_timestamp(time)
时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD |
| Perl | 先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year); |
| PHP | mktime(hour, minute, second, day, month, year) |
| PostgreSQL | SELECT extract(epoch FROM date(‘YYYY-MM-DD HH:MM:SS‘)); |
| Python | 先 import time 然后 int(time.mktime(time.strptime(‘YYYY-MM-DD HH:MM:SS‘, ‘%Y-%m-%d %H:%M:%S’))) |
| Ruby | Time.local(year, month, day, hour, minute, second) |
| SQL Server | SELECT DATEDIFF(s, ‘1970-01-01 00:00:00′, time) |
| Unix / Linux | date +%s -d”Jan 1, 1970 00:00:01″ |
| VBScript / ASP | DateDiff(“s”, “01/01/1970 00:00:00″, time) |
版权申明:您可以随意转载本博客内容,但是必须注明出处,这也是对原创作者最基本的尊重
您可能会对以下内容有兴趣:
- 在ACCESS(Mssql)+ASP实现随机读取数据库记录的简单方法 需要在MsSQL Server中想进行随机排序(随机取N条记录)方法相当的简单,只需要简单地加个“Order By Rnd()"或”Order By NewID()"就可以成功的随机排序读取数据库记录内容了,但这招到了ACCESS中却出问题了。在ACCESS中用以上Order排序出来的显示结果每次都是一样的(虽然也是随机的,但是每次都是一样)。在百度Google搜索了很久,也没有找到比较有建设性的解决方案,大多数都是建议用SQL语句查询出全部记录,然后在ASP中进行随机排序。 发现用“Select * From [data]...
- 通过Cmos设置让电脑定时开机 笔者是公司微机中心的主管,现公司的网络服务器由自己开启。偶尔有事不能准时上班,但服务器必须在上班时间准时开启,于是就巧用主板上的BIOS功能让服务器定时开启,这样就不会耽误大家的工作。 通过CMOS设置实现定时开机的设置过程如下:首先进入“CMOS SETUP”程序(大多数主板是在计算机启动时按DEL键进入);然后将光条移到“Power Management Setup”选项上,回车进入其子菜单;再将“Resume by Alarm”项设置成“Enabled”,并在“Date(of Month)Alarm”项中设置每月开机日期(0表示每天,1表示每月1日,2表示每月2日,……),在“Time(hh:mm:ss)Alarm”项中设置开机时间;最后保存设置,重新启动,当关闭计算机后,你的计算机将在你规定的时刻自动启动。 注意:1.计算机主板必须有“Resume by...
- Dos命令At的命令格式和使用方法 At 列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序。必须正在运行“计划”服务才能使用 at 命令。 at [\\computername] [[id] [/delete] |...
- 来自csdn的access数据库转换成SQL Server数据库的方法,很齐全! 首先如果一开始就需要制作SQL Server的网站,那么最好将你的爱机装上Windows 2000或者2003这样的Server版,这样的版本是支持SQL Server正式版的安装的,而XP只能支持个人版或者开发版,我没有装过,但对于调试网站而言最好还是在正式版下工作,转化的整个过程不算太复杂,但至少可以省下一些精力。我的爱机是XP,所以只好先用ACCESS调试。 好了,当你找到一台装有SQL Server的机器时,你便可以开始转换并调试了。 1。先利用转化软件:CooSel2.0 CreateSQL V1.05,我用的这个,非常好用。具体操作的话,我用的是生成升迁SQL脚本,保存为 *.sql文件后,在SQL2000的查询分析器里调入执行。而SQL...