如果time_t
为1291121400
,如何将当天的日期格式化为20101130
?
答案 0 :(得分:5)
使用gmtime(3)
或localtime(3)
将其转换为struct tm
(或者,更好的是,可重入版本gmtime_r
或localtime_r
),以及
然后使用strftime(3)
将其转换为字符串。例如,如果你
想要UTC的输出:
struct tm tm;
char buf[9];
gmtime_r(&my_time_t, &tm);
strftime(buf, sizeof(buf), "%Y%m%d", tm);
printf("The date is: %s\n", buf);
答案 1 :(得分:1)
以下对我有用:
int iso_date_from_time_t ( const time_t & in_time_t_ )
{
tm temp_this_tm_;
{ // the following to set local dst fields of struct tm ?
time_t tvsec_ = time(NULL);
localtime_r ( & tvsec_, & temp_this_tm_ ) ;
}
localtime_r ( & in_time_t, & temp_this_tm_ ) ;
return ( ( ( ( 1900 + temp_this_tm_.tm_year ) * 100 + ( 1 + temp_this_tm_.tm_mon ) ) * 100 ) + temp_this_tm_.tm_mday ) ;
}
感谢您的协助。
答案 2 :(得分:0)
使用gmtime
或localtime
和strftime
功能。
答案 3 :(得分:0)
void function ()
{
time_t current_time;
struct tm *struct_time;
time( ¤t_time);
struct_time = gmtime( ¤t_time);
/* Now, you can get the ISO date by
* YYYY 'struct_time->tm_year+1900'
* MM 'struct_time->tm_mon+1'
* DD 'struct_time->tm_mday' */
}
请查看'struct tm'结构。