Unix时间戳 POSIX时间 Unix时间
時間戳是自 1970 年 1 月 1 日(00:00:00 GMT)以來的秒數,也被稱為 Unix 時間戳(Unix Timestamp)。
Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。
Unix時間戳不僅被使用在Unix系統、類Unix系統中,也在許多其他操作系統中被廣泛采用。
如何在不同編程語言中獲取現在的Unix時間戳(Unix timestamp)?
| Java | time |
| JavaScript | Math.round(new Date().getTime()/1000) getTime()返回數值的單位是毫秒。因為new Date().getTime()得到的是millisecond,需要除以1000 |
| 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)) java.util.Date的入參是millisecond。而Unix timestamp的單位是s |
| JavaScript | 先 var unixTimestamp = new Date(Unix timestamp * 1000) 然后 commonTime = unixTimestamp.toLocaleString() js中Date需要的入參是millisecond |
| 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 | Date date = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");
long epoch = date.getTime(); 這個地方是不是需要除以1000轉換成s呢? |
| JavaScript | var commonTime = new Date(Date.UTC(year, month - 1, day, hour, minute, second)) 這個地方是不是需要除以1000轉換成s呢? |
| 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) |
http://unixtime.51240.com/
直接傳入毫秒數作為參數,給Date對象就可以得到普通的時間了,然后通過getHours,getFullYear等方法獲取年月日,時分秒了
?
創建一個日期對象:
var objDate=new Date([arguments list]);參數形式有以下5種:
1)new Date("month dd,yyyy hh:mm:ss");
2)new Date("month dd,yyyy");
3)new Date(yyyy,mth,dd,hh,mm,ss);
在程序中我使用的第三種初始化方法,總是顯示格式化的參數不正確,仔細看了一下一定要是整型的才可以,我傳遞的是字符串
4)new Date(yyyy,mth,dd);
5)new Date(ms);
需要注意最后一種形式,參數表示的是需要創建的時間和 GMT時間1970年1月1日之間相差的毫秒數。各種函數的含義如下:
month:用英文 表示月份名稱,從January到December
mth:用整數表示月份,從(1月)到11(12月)
dd:表示一個 月中的第幾天,從1到31
yyyy:四位數表示的年份
hh:小時數,從0(午夜)到23(晚11點)
mm: 分鐘數,從0到59的整數
ss:秒數,從0到59的整數
ms:毫秒數,為大于等于0的整數
如:
new Date("January 12,2006 22:19:35"); new Date("January 12,2006"); new Date(2006,0,12,22,19,35); new Date(2006,0,12); new Date(1137075575000);上面的各種創建形式都表示2006 年1月12日這一天。?
http://www.jb51.net/article/44981.htm
?
轉載于:https://www.cnblogs.com/softidea/p/5604345.html
總結
以上是生活随笔為你收集整理的Unix时间戳 POSIX时间 Unix时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过反射将变量值转为变量名本身
- 下一篇: iOS 开发各种传值