首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在time_t中将Unix时间戳字符串转换为C++11?

问如何在time_t中将Unix时间戳字符串转换为C++11?
EN

Stack Overflow用户
提问于 2016-05-29 00:27:53
回答 1查看 9K关注 0票数 3

简短的问题,又名"TD;DR“。

我有一个"1464478647000“字符串,我猜这是一个UNIX时间戳。但毫无疑问,它是一个字符串,包含一个代表时间的数字,但不是人类可读的格式。如何将其转换为time_t类型,以便以后将其格式化为格式化字符串,如C++11中的"3分钟前“?

很长的问题。

首先,为我糟糕的英语感到抱歉。

我完全是C++11的新手,甚至C++;我只是学了一点C,就像10年前,我几乎忘了它是怎么回事。在我的业余时间,我正在尝试做一个费德尼克斯的小叉(一个用C++11编写的ncurses程序,它充当一个用于Linux控制台的Feedly客户端--看起来它已经死了),所以它看起来更像一个列表(类似于ncmpcpp或杂种狗 )。由于当前的费德尼克斯实现没有显示任何帖子的时间,所以我认为最好让它显示它发布的时间(就像Feedly的web版本在其“只有标题”的演示文稿上所做的那样)。

问题是,按照在费德尼克斯上实现的模型,我将“已发布”数据作为字符串对象(我无法理解如何将其作为整数或直接作为time_t对象(似乎Json库不允许这样做)。Feedly文档说,‘发布’数据是“本文发表时的时间戳,这是RSS提要(通常是不准确的)报道的。”其中一个例子是"1452614967000“。

那么,如何将该字符串转换为time_t对象,以便以后将其格式化为"3分钟前“或"2天前”之类的字符串?或者有什么更好的方法来获得格式化的字符串(更有可能)?任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2016-05-29 00:39:01

首先,使用long将数字转换为strtol,然后转换为time_t

代码语言:javascript
复制
#include <cstdlib>
#include <ctime>

using namespace std; // to simplify answer

...
const char* timestr = "1464478647000";
time_t timenum = (time_t) strtol(timestr, NULL, 10); 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37505001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档