在线UNIX时间戳转换

当地时间 格式为:2020-01-02 12:34:56

UNIX时间戳(UNIX Time Stamp)为协调世界时(Universal Time Coordinated,即UTC)从1970年01月01日00时00分00秒到现在经过的总秒数,不考虑闰秒。UNIX时间戳为正数,表示1970年以后的时间;为负数则为1970年之前的时间。

为什么要从1970年算起?

UNIX系统的第一个版本是在1970年问世的,那个时候操作系统是32位的,用一个int存储精确到秒时间,最多可以表示约68.1年,这个存储范围如果是从公元元年开始计算的话显然是不够用。最早时人们甚至打算从1971年开始计算,综合存储范围,便于记忆等多方面考虑,最终选择以1970年开始计算UNIX 时间戳。

不同编程语言获取日期时间和时间戳的方法


//Objective-C
NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"%@", dateString);

NSTimeInterval timeInterval = [date timeIntervalSince1970];
long long timeStamp = (long long)(timeInterval * 1000.0);
NSLog(@"%lld", timeStamp);

//Swift
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateString = dateFormatter.string(from: date)
print(dateString)

let timeInterval = date.timeIntervalSince1970
let timeStamp = Int64(timeInterval * 1000.0)
print(timeStamp)

//PHP
$date = date('Y-m-d H:i:s');
echo $date;

$timeStamp = time();
echo $timeStamp;

//Python
import datetime, time

currentDateTime = datetime.datetime.now()
print(currentDateTime.strftime('%Y-%m-%d %H:%M:%S'))

currentTimeStamp = int(time.time() * 1000.0)
print(currentTimeStamp)

//JS
var currentDate = new Date();
var dateString = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate() + ' ' + currentDate.getHours() + ':' + currentDate.getMinutes() + ':' + currentDate.getSeconds();
console.log(dateString);

var currentTimeStamp = new Date().getTime();
console.log(currentTimeStamp);

//JAVA
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = dateFormat.format(new Date());
        System.out.println(dateString);

        long timeStamp = new Date().getTime();
        System.out.println(timeStamp);
    }
}

//Golang
package main

import (
    "fmt"
    "time"
)

func main() {
    currentTime := time.Now()
    fmt.Println(currentTime.Format("2006-01-02 15:04:05"))

    currentTimeStamp := time.Now().UnixNano() / int64(time.Millisecond)
    fmt.Println(currentTimeStamp)
}

//C语言
#include <stdio.h>
#include <time.h>

int main() {
    time_t t = time(NULL);
    struct tm *tm = localtime(&t);
    char dateString[20];
    strftime(dateString, sizeof(dateString), "%Y-%m-%d %H:%M:%S", tm);
    printf("%s", dateString);

    struct timeval tv;
    gettimeofday(&tv, NULL);
    long long timeStamp = (long long)tv.tv_sec * 1000 + (long long)tv.tv_usec / 1000;
    printf("%lld", timeStamp);
    return 0;
}

相关工具