社区
C语言
帖子详情
这个tm结构中的数据为什么转换成毫秒是-1?
pass2000123
2010-02-24 11:35:12
从别人接口里收到这个tm结构数据:
tm t;
t.tm_sec = 16;
t.tm_min = 51;
t.tm_hour = 10;
t.tm_mday = 21;
t.tm_mon = 10;
t.tm_year = 150;
t.tm_wday = 0;
t.tm_yday = 0;
t.tm_isdst = 0;
然后我转换为毫秒:
long lTime = mktime(&t);
结果是-1,这是为什么呢,请各位大侠看看,谢谢!!
...全文
100
5
打赏
收藏
这个tm结构中的数据为什么转换成毫秒是-1?
从别人接口里收到这个tm结构数据: tm t; t.tm_sec = 16; t.tm_min = 51; t.tm_hour = 10; t.tm_mday = 21; t.tm_mon = 10; t.tm_year = 150; t.tm_wday = 0; t.tm_yday = 0; t.tm_isdst = 0; 然后我转换为毫秒: long lTime = mktime(&t); 结果是-1,这是为什么呢,请各位大侠看看,谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
华宇智能
2010-03-11
打赏
举报
回复
#ifndef _TM_DEFINED
struct tm {
int tm_sec; /* 秒 - 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月)- 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /*夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
};
#define _TM_DEFINED /* 避免重复定义 tm */
#endif
ANSI C
标准称使用
tm结构
的这种时间表示为分解时间(broken-down time)。
包含文件:<sys/time.h> <time.h>
把
tm指针
转换为time_t: time_t mktime(struct tm *timeptr);
转载自:嵌入式在线 http://www.embedol.com/c/1062.html
太乙
2010-02-24
打赏
举报
回复
64位机器上:
2552611876
james_hw
2010-02-24
打赏
举报
回复
还有,long改成time_t或者unsigned long
james_hw
2010-02-24
打赏
举报
回复
t.tm_year = 150; 150越界了,32位机上最多支持到2037年即37
pass2000123
2010-02-24
打赏
举报
回复
引用 2 楼 jamesf1982 的回复:
还有,long改成time_t或者unsigned long
多谢,我改大了类型就可以了^_^
linux 字符串时间转换,time_t
tm
timeval 和 时间字符串的转换方法
1、常用的时间存储方式1)time_t类型,这本质上是一个长整数,表示从1970-01-01 00:00:00到目前计时时间的秒数,如果需要更精确一点的,可以使用timeval精确到
毫秒
。2)
tm
结构
,这本质上是一个
结构
体,里面包含了各时间字段struct
tm
{int
tm
_sec; /* seconds after the minute - [0,59] */int
tm
_min; ...
time_t
tm
systemtime 互相转换
struct
tm
的
结构
为: struct
tm
{ int
tm
_sec; /* seconds after the minute - [0,61] */ int
tm
_min; /* minutes after the hour - [0,59] */ int
tm
_hour; /* hours since midn
将当前时间戳转化为 struct
tm
结构
然后获取自己想要的
数据
void test(uint32 t) { struct
tm
*ptr; time_t lt; lt = t;//time(NULL);1471421956 ptr=localtime(<); printf("second:%d\n",ptr->
tm
_sec); printf("minute:%d\n",ptr->
tm
_min); printf("hour:%d\n",ptr
struct
tm
和 time_t 时间和日期的使用方法
1.概念在C/C++
中
,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。下面主要介绍在C/C++
中
时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知
C/C++
中
的日期和时间 TIME_T与STRUCT
TM
转换
C/C++
中
的日期和时间 time_t与struct
tm
转换 - 吴文力 - 博客园 摘要: 本文从介绍基础概念入手,探讨了在C/C++
中
对日期和时间操作所用到的
数据
结构
和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件
中
声明的各种函数和
数据
结构
的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++
中
,对字符串的操作有很多
C语言
70,032
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章