看了vsftpd的source,在sysutil.c的vsf_sysutil_statbuf_get_date方法里有这么一段:
if (!use_localtime)
{
p_tm = gmtime(&p_stat->st_mtime);
}
else
{
p_tm = localtime(&p_stat->st_mtime);
}
这里无论走那条分支都是取得了UTC时间。没有再查下去。
方法:
在这下面加上一段手工调整时区:
p_tm->tm_hour += timezone;
if (p_tm->tm_hour >= 24) {
p_tm->tm_hour -= 24;
p_tm->tm_mday += 1;
}
凑合着用吧。