C语言unix时间戳转换
A. c语言如何调用系统时间
方法一,#include<time.h>
int main()
{
time_t timep;
struct tm *p;
time (&timep);
p=gmtime(&timep);
printf("%d ",p->tm_sec); /*获取当前秒*/
printf("%d ",p->tm_min); /*获取当前分*/
printf("%d ",8+p->tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/
printf("%d ",p->tm_mday);/*获取当前月份日数,范围是1-31*/
printf("%d ",1+p->tm_mon);/*获取当前月份,范围是0-11,所以要加1*/
printf("%d ",1900+p->tm_year);/*获取当前年份,从1900开始,所以要加1900*/
printf("%d ",p->tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/
}
方法二.#include<stdio.h>
#include<time.h>
intmain()
{
time_tt
structtm*lt;time(&t);//获取Unix时间戳。
lt=localtime(&t);//转为时间结构。
printf悄链岩("%d/%d/%d%d:%d:%d ",lt->tm_year+1900,lt->tm_mon,lt->tm_mday,
lt->tm_hour,lt->tm_min,lt->tm_sec);//输出结果
return0;}
(1)C语言unix时间戳转换扩展阅读
1、CTimeSpan类
如果想计算两段时间的差值,可启御以使用CTimeSpan类,具体唤返使用方法如下:
CTime t1( 1999, 3, 19, 22, 15, 0 );
CTime t = CTime::GetCurrentTime();
CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔
int iDay=span.GetDays(); //获取这段时间间隔共有多少天
int iHour=span.GetTotalHours(); //获取总共有多少小时
int iMin=span.GetTotalMinutes();//获取总共有多少分钟
int iSec=span.GetTotalSeconds();//获取总共有多少秒
2、timeb()函数
_timeb定义在SYSTIMEB.H,有四个fields
dstflag
millitm
time
timezone
void _ftime( struct _timeb *timeptr );
struct _timeb timebuffer;
_ftime( &timebuffer );
B. C语言获取系统时间
#include <stdio.h>
#include <time.h>
void main ()
{ time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "\007The current date/time is: %s", asctime (timeinfo) );
exit(0);
}
=================
#include <time.h> -- 必须的时间函数头文件
time_t -- 时间类型(time.h 定义)
struct tm -- 时间结构,
time.h 定义如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
time ( &rawtime ); -- 获取时间,
以秒计,从1970年1月一日起算,存于rawtime localtime ( &rawtime ); -- 转为当地时间,tm 时间结构
asctime ()-- 转为标准ASCII时间格式: 星期 月 日 时:分:秒 年 =========================================
你要的格式可这样输出: printf ( "M-d-d d:d:d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon, timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec); 就是直接打印tm,tm_year 从1900年计算,所以要加1900, 月tm_mon,从0计算,所以要加1 其它你一目了然啦。
C. 怎么用c语言实现指定时间转化为unix时间戳
C/C++ code #include #include int main(void) { time_t tick; struct tm tm; char s[100]; tick = time(NULL); tm = *localtime(&tick); strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", &tm); printf("%d: %s\n", (int)tick, s); return 0; }
D. VC 怎么获取Unix时间戳
获取前系统UNIX间戳
System.out.println("获取系统毫秒数1:"衫告派+Long.toString(new Date().getTime()));
System.out.println("获取系统毫秒数2:"+Long.toString(System.currentTimeMillis()));
注意:代码获取都系统毫秒数实际操作我般都记录毫友陆秒说求记录精度处理UNIX间戳候需或贺要数据进行处理
E. 怎么把时间戳转化成时间的正规格式显示出来
如果是javaScript,先var unixTimestamp = new Date(Unix timestamp* 1000)然后commonTime = unixTimestamp.toLocaleString()
如果是java,String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp* 1000))
不一样的语言有不同的转换方法,详情请参考码工具网的时间戳转换方法。
F. 时间戳怎么转换的每位代表什么
时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。它也被称为Unix时间戳,具体方式有将时间转换为时间戳,重新格式化时间,时间戳转换为时间。
以下是具体转换的方式:网络对时间戳的定义是,一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
在python中,时间戳是一串数字,当我们要把它转换为具有一定格式的时间数据如2018-08-08 11:11:11时,需要用到time模块,同样,时间数据也可以转换为时间戳。
具体操作有如下几种:获取当前时间及将其转换成时间戳实际需求,将时间转换成时间戳,将时间数据2018-08-08 11:11:11转换成时间戳,具体的操作过程为:利用strptime()函数将时间转换成时间数组,利用mktime()函数将时间数组转换成时间戳。
重新格式化时间需要以下的两个步骤:利用strptime函数将时间转换成时间数组,利用strftime函数重新格式化时间。
将时间戳转换成时间,在时间戳转换成时间中,首先需要将时间戳转换成localtime,再转换成时间的具体格式:利用localtime函数将时间戳转化成localtime的格式,利用strftime函数重新格式化时间。
G. c++中如何将unix时间戳转换为标准时间,有函数吗
C/C++ code
#include <stdio.h>芹陵掘
#include <嫌核time.h>
int main(void)
{
time_t tick;
struct tm tm;
char s[100];
tick = time(NULL);
tm = *localtime(&tick);
strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", &tm);
printf("%d: %s\汪衫n", (int)tick, s);
return 0;
}
H. C语言如何获取本地时间,然后取时、分、秒的值
#include <stdio.h>
#include <time.h>
int main()
{time_t timep;
struct tm *tp;
time(&timep);
int p;
tp = localtime(&timep); //取得系统时间
printf("Today is %d-%d-%d ", (1900 + tp->tm_year), (1 + tp->tm_mon), tp->tm_mday);
printf("Now is %d:%02d:%02d ", tp->tm_hour, tp->tm_min, tp->tm_sec);
p=tp->tm_sec;
printf("p=%d ",p);
return 0;
}
I. C语言 如何把64位时间戳转换成能看得懂的时间 (只有stdio。h 头文件 C语言自己实现方法。)
#include<stdio.h>
typedeflonglonginttime64;
/*
将64位时间戳转化为时间数组
*/
voidtransformToDate(time64timeStamp,time64**dateArry)
{
time64low,high,mid,t;
time64year,month,day,hour,minute,second,milliSecond;
time64daySum[]={0,31,59,90,120,151,181,212,243,273,304,334,365};
time64milOfDay=24*3600*1000;
time64milOfHour=3600*1000;
/*防止超过9999-12-3123:59:59:999*/
if(timeStamp>315537897599999){
timeStamp=315537897599999;
}
low=1;
high=9999;
while(low<=high)
{
mid=(low+high)>>1;
t=((mid-1)*365+(mid-1)/4-(mid-1)/100+(mid-1)/400)*milOfDay;
if(t==timeStamp)
{
low=mid+1;
break;
}
elseif(t<timeStamp)
low=mid+1;
else
high=mid-1;
}
year=low-1;
timeStamp-=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400)*milOfDay;
intisLeapYear=((year&3)==0&&year%100!=0)||year%400==0;
for(month=1;(daySum[month]+((isLeapYear&&month>1)?1:0))*milOfDay<=timeStamp&&month<13;month++){
if(isLeapYear&&month>1)
++daySum[month];
}
timeStamp-=daySum[month-1]*milOfDay;
day=timeStamp/milOfDay;
timeStamp-=day*milOfDay;
hour=timeStamp/milOfHour;
timeStamp-=hour*milOfHour;
minute=timeStamp/60000;
timeStamp-=minute*60000;
second=timeStamp/1000;
milliSecond=timeStamp%1000;
*dateArry[0]=year;
*dateArry[1]=month;
*dateArry[2]=day;
*dateArry[3]=hour;
*dateArry[4]=minute;
*dateArry[5]=second;
*dateArry[6]=milliSecond;
}
//将64位时间戳转化为时间字符串
voidtransformToDateString(time64timeStamp,char*dateString)
{
time64year,month,day,hour,minute,second,milliSecond;
time64*intp[]={&year,&month,&day,&hour,&minute,&second,&milliSecond};
transformToDate(timeStamp,intp);
sprintf(dateString,"%.4I64d-%.2I64d-%.2I64d%.2I64d:%.2I64d:%.2I64d:%.3I64d",
year,month,day+1,hour,minute,second,milliSecond);
}
intmain()
{
time64time;
chardate[256];
scanf("%lld",&time);
transformToDateString(time,date);
printf("date=%s ",date);
return0;
}
示例运行结果:
63510000999140
date= 2013-07-21 10:56:39:140