timeinfo = localtime ( &rawtime );
int Year = timeinfo->tm_year+1900;
int Mon = timeinfo->tm_mon+1;
其余日,时,分,秒都不变。
如何获取系统当前时间戳
time_t now;
int unixTime = (int)time(&now);
1.时间戳转格式化
-
#include <stdio.h>
-
#include <time.h>
int stamp_to_standard(time_t nSrc, char *sDestTime){
struct tm p;
p = *localtime(&nSrc);
strftime(sDestTime, 1000,"%Y-%m-%d %H:%M:%S", &p);
return 0;
}
-
2.格式化转时间戳
-
#include <stdio.h>
-
#include <time.h>
-
-
int
main(
int
argc,
const
char
* argv[])
-
{
-
struct
tm
* tmp_time = (
struct
tm
*)malloc(
sizeof
(
struct
tm
));
-
strptime(
"2017-5-12
11:13:37"
,
"%Y-%m-%d
%H:%M:%S"
,tmp_time);
-
time_t
t = mktime(tmp_time);
-
printf(
"%ld\n"
,t);
-
free(tmp_time);
-
return
0;
-
}
1.时间戳转格式化[cpp] view plain copy #include #include int main(int argc, const char * argv[]) { time_t t; struct tm *p; t=1384936600;
时间戳
转
换(
时间戳
:自 1970 年1月1日(00:00:00 )至当前时间的总秒数。)
#include
#include int main(int argc, const char * argv[])
time_t t;
struct tm *p;
t=1408413451;
p=gmtime(&t);
char s[80];
strftime(s, 80, %Y-%m-%d %H:%M:%S, p);
printf(%d: %sn, (int)t, s);
14084134
一次使用MFC调用MYSQL的过程中,对sql语句的处理时,需要用到
时间戳
和
日期
的互相
转
换,采用C库的struct tm做法,会产生secure报错,即时在函数名后加上_s也仍然无法解决。于是有了下述办法,俺是初学者,有更好的办法请大佬们指教。
首先引入头文件
#include<ctime>
#include<iostream>
using namespace std;
获取当前系统的
时间戳
time_t t;
t = time(NULL);//time(NULL)能返回
用到的函数主要有strftime、strptime 、localtime 、mktime。
名词解释:
时间戳
:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
时间字符串:形如2021-12-01 12:00:00
size_t strftime(char *s,size_t maxsize,char *format,const struct tm *timeptr)
作用:strftime将一个tm结构格式化为一个字符串
localtime、localtime_s、localtime_r都是用于获取系统时间;
localtime_r用于Linux平台下获取系统时间,
localtime_s用于Windows平台获取系统时间
显示当地
日期
与时间主要通过localtime()函数来实现,该函数的原型在time.h头文件中,其语法格式如下:
struct tm *localtime(const time_t *timep)
该函数的作用是把timep所指的时间(如函数t
这段时间老需要对时间进行
转
换,也就是将
时间戳
转
换成特定的格式,或者特定的格式
转
换成
时间戳
。
首先想到的当然是用系统的方法了,但是写完后,发现第一次加载页面的时候特别的卡,一步一步锁定,最后发现,是ios本身函数
[NSDate dateWithTimeIntervalSince1970:[timeStr longLongValue]]
这句话特别卡,由于
转
换的很多,都无法忍受了。最后就想着,