什么是Unix时间戳?怎样转换成日常的日历信息?

Python028

什么是Unix时间戳?怎样转换成日常的日历信息?,第1张

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。

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")

要看你的 “时间戳” 是怎样定义的。

EXCELL 里 是 03/12/2014 这种格式, 你可以 用 sscanf() 读出。

int d,m,y

char s[]="03/12/2014"

sscanf(s,"%2d/%2d/%4d",&d,&m,&y)

printf("%d %d %d\n",d,m,y)

----

c 语言 timestampe 可以用 time.h 里的函数获取和处理

例如 已知 时间戳 数值: 1483040530

#include<stdio.h>

#include<time.h>

int main(){

time_t rt

struct tm * timeinfo

char timE [80]

rt = 1483040530 // 若已知数值

timeinfo = localtime ( &rt ) //转当地时间,tm 结构

strftime ( timE,80,"%Y-%m-%d %I:%M:%S",timeinfo) //用自己喜欢的格式输出

printf ("%s", timE)

return 0

}

输出: 2016-12-29 02:42:10

按你描述,应该想要的是Unix时间戳,即当前时间到1970年1月1日0:0:0的毫秒数据。

在java里面Data类型可以直接用API获取。

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")

String value=20150704000000

df.parse(value).getTime()就是你想要的时间戳。

具体可以查看Date类型的API

以及http://tool.chinaz.com/Tools/unixtime.aspx?jdfwkey=pqr111