当地时间 格式为: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;
}