如何将时间转换为时间戳

qxh0724 2010-11-22 01:23:20
比如:“2010-11-11 11:11:11”, 转换为unix时间戳,有什么函数
...全文
1131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yui 2010-11-22
  • 打赏
  • 举报
回复
建议研究一下time.h里面的struct tm结构体,很容易可以解析日期时间字符串,给这个结构体的成员赋值
struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/

#ifdef __USE_BSD
long int tm_gmtoff; /* Seconds east of UTC. */
__const char *tm_zone; /* Timezone abbreviation. */
#else
long int __tm_gmtoff; /* Seconds east of UTC. */
__const char *__tm_zone; /* Timezone abbreviation. */
#endif
};


然后,可以使用mktime等把这个结构体的信息转为时间戳
/* Return the `time_t' representation of TP and normalize TP.  */
extern time_t mktime (struct tm *__tp) __THROW;

/* Like `mktime', but for TP represents Universal Time, not local time. */
extern time_t timegm (struct tm *__tp) __THROW;

/* Another name for `mktime'. */
extern time_t timelocal (struct tm *__tp) __THROW;
lvqqrainbow 2010-11-22
  • 打赏
  • 举报
回复
可以用shell命令,比如:
date -d "2010-11-11 11:11:11" + %s

会得到一个时间戳。
赵4老师 2010-11-22
  • 打赏
  • 举报
回复
COleDateTime
qxh0724 2010-11-22
  • 打赏
  • 举报
回复
补充问一个问题,如何将字符串“2010-11-11 11:11:11”,转换为时间格式?

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧