当前系统时间,一般取自1970年以来秒数值(int),各种编程语言提供API处理方式不同,特汇总。

 

1.C/C++

time_t seconds;

time(&seconds);

 

2.QT

QDateTime dt = QDateTime::currentDateTime();

dt.toTime_t();

 

3.C#

C#没有直接提供获取1970年秒值的API,可通过DateTime运算获取

// 不能用DateTime.Now,否则会有8h时差
int seconds = DateTime.UtcNow.Subtract(DateTime.Parse("1970-1-1")).TotalSeconds;

// 秒转化为字符串
DateTime dt = DateTime.Parse("1970-01-01 00:00:00").AddSeconds(seconds);
dt = dt.AddSeconds(8 * 60 * 60); // +8h的时差
string time = dt.ToString("yyyy-MM-dd HH:mm:ss");

4. Java

// 获取秒
int seconds = System.currentTimeMillis()/1000;

// 秒转化为日期
Date dt = new Date();
dt.setTime( seconds*1000 );

5. Python

与C语言API基本一致

import time
time.time() #返回的是一个浮点型数值
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #时间字符串

 

 6. Shell

seconds=`date +"%s"`     #自1970年以来秒数
stime=`date -d @$seconds +"%Y-%m-%d %H:%M:%S""` #秒数转化为时间字符串