如何实现秒数和日期之间的转换
我想要进行对时方面的工作,先把日期转换为距标准时间的秒数,计算完成后在转化为日期(包括时分秒)。听说有库函数可以利用,具体哪个库,是time.h吗?怎么用啊?急求啊!给定...
我想要进行对时方面的工作,先把日期转换为距标准时间的秒数,计算完成后在转化为日期(包括时分秒)。
听说有库函数可以利用 ,具体哪个库,是time.h吗?怎么用啊?
急求啊!
给定年 月 日 时 分 秒 怎么转换为秒数,
给定秒怎么转换为年月日时分秒,最好直接给出基于C语言的函数。 展开
听说有库函数可以利用 ,具体哪个库,是time.h吗?怎么用啊?
急求啊!
给定年 月 日 时 分 秒 怎么转换为秒数,
给定秒怎么转换为年月日时分秒,最好直接给出基于C语言的函数。 展开
2个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/*************************************************************************
* @brief : 日期这字符串转为秒数
* @inparam :
|__ pszDate 2010/04/12/23/59/59、 2010-04-12 23:59:59类似字符串
* @outparam : NA
* @return :
|__ time_t
*************************************************************************/
time_t DateStr2Sec(char* pszDate)
{
struct tm tmDate = {0};
tmDate.tm_year = atoi(pszDate) - 1900;
tmDate.tm_mon = atoi(pszDate + 5) - 1; // 注意月份是从0开始的
tmDate.tm_mday = atoi(pszDate + 8); // 月份日期是从1开始的
tmDate.tm_hour = atoi(pszDate + 11);
tmDate.tm_min = atoi(pszDate + 14);
tmDate.tm_sec = atoi(pszDate + 17);
return mktime(&tmDate);
}
/*************************************************************************
* @brief : 时间转换成字符串
* @inparam :
|__ iTime 时间戳
* @outparam : pszTime
* @return : NA
*************************************************************************/
void TimeFormatInt2Str(int iTime, char *pszTime)
{
time_t tCurrent;
struct tm tmFmtDatetime;
struct tm *ptmFmtDatetime = NULL;
if(iTime == 0)
{
return;
}
tCurrent = iTime;
ptmFmtDatetime = localtime_r(&tCurrent, &tmFmtDatetime);
if (ptmFmtDatetime == NULL)
{
return;
}
sprintf(pszTime, "%04d-%02d-%02d %02d:%02d:%02d",
ptmFmtDatetime->tm_year+1900,
ptmFmtDatetime->tm_mon+1,
ptmFmtDatetime->tm_mday,
ptmFmtDatetime->tm_hour,
ptmFmtDatetime->tm_min,
ptmFmtDatetime->tm_sec
);
}
追问
请问你 这个是C语言吗 ?可不可以给出具体的注释?有些函数看不懂比如atoi?localtime_r?
追答
atoi和localtime_r你可以baidu一下啊。这些都是很基础的函数。
推荐于2016-06-20 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
巧用date命令将秒数与日期互相转换。
例如有一个格林威治的秒值1318995200,需要将其转成具体的日期,可以用如下命令:
[root@mounix ~]# date "+%s"
1337651598
[root@mounix ~]# date -d "$((1337651598 - `date '+%s'` )) sec" +%Y-%-m-%-d
2012-5-22
[root@mounix ~]# date -d "2012-05-18 04:00:00" +%s
1337284800
[root@mounix ~]#
例如有一个格林威治的秒值1318995200,需要将其转成具体的日期,可以用如下命令:
[root@mounix ~]# date "+%s"
1337651598
[root@mounix ~]# date -d "$((1337651598 - `date '+%s'` )) sec" +%Y-%-m-%-d
2012-5-22
[root@mounix ~]# date -d "2012-05-18 04:00:00" +%s
1337284800
[root@mounix ~]#
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询