c++时间戳到人类可读的datetime函数
c++ time stamp to human readable datetime function
我有一个简单的函数,我需要从时间戳返回人类可读的日期时间,但不知何故它以秒为单位返回相同的时间流:
输入1356953890std::string UT::timeStampToHReadble(long timestamp)
{
const time_t rawtime = (const time_t)timestamp;
struct tm * dt;
char timestr[30];
char buffer [30];
dt = localtime(&rawtime);
// use any strftime format spec here
strftime(timestr, sizeof(timestr), "%m%d%H%M%y", dt);
sprintf(buffer,"%s", timestr);
std::string stdBuffer(buffer);
return stdBuffer;
}
输出1231133812 我是这样称呼它的:
long timestamp = 1356953890L ;
std::string hreadble = UT::timeStampToHReadble(timestamp);
std::cout << hreadble << std::endl;
,输出为:1231133812我希望它是这样的格式:31/1/2012 11:38:10我遗漏了什么?
UTDATE:
解决方案strftime (timestr sizeof (timestr),"% H: % M: % S % d/Y % M/%",dt);
可以归结为:
std::string UT::timeStampToHReadble(const time_t rawtime)
{
struct tm * dt;
char buffer [30];
dt = localtime(&rawtime);
strftime(buffer, sizeof(buffer), "%m%d%H%M%y", dt);
return std::string(buffer);
}
变化:
- 我更喜欢在函数之外进行类型转换。如果调用者拥有time_t数据,那么在调用函数之前将time_t转换为long是很奇怪的。
- 没有必要有两个缓冲区(因此没有必要用sprintf复制)
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 内置函数可查看CPP中的成员变量
- 如何获取std::result_of函数的返回类型
- 如何在c++中为模板函数实例创建快捷方式
- c++时间戳到人类可读的datetime函数