Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将Unix时间戳字符串转换为C++;11? 简短的问题,又名“TD;DR”。_C++_Unix_C++11_Time T_Feedly - Fatal编程技术网

C++ 如何将Unix时间戳字符串转换为C++;11? 简短的问题,又名“TD;DR”。

C++ 如何将Unix时间戳字符串转换为C++;11? 简短的问题,又名“TD;DR”。,c++,unix,c++11,time-t,feedly,C++,Unix,C++11,Time T,Feedly,我有一个,比如说,“14644478647000”字符串,我猜这是一个UNIX时间戳。但它肯定是一个包含表示时间的数字的字符串,但不是人类可读的格式。如何将其转换为time\t类型,以便稍后将其格式化为格式化字符串,如C++11中的“3分钟前” 长问题。 首先,对不起我的英语不好 我完全是C++ 11,甚至C++。我刚刚学了一点C,那是10年前的事了,我几乎忘了它是怎么回事。在我的业余时间,我正在尝试做一个小分支(一个用C++11编写的ncurses程序,它充当Linux控制台的Feedly客

我有一个,比如说,“14644478647000”字符串,我猜这是一个UNIX时间戳。但它肯定是一个包含表示时间的数字的字符串,但不是人类可读的格式。如何将其转换为
time\t
类型,以便稍后将其格式化为格式化字符串,如C++11中的“3分钟前”


长问题。 首先,对不起我的英语不好

我完全是C++ 11,甚至C++。我刚刚学了一点C,那是10年前的事了,我几乎忘了它是怎么回事。在我的业余时间,我正在尝试做一个小分支(一个用C++11编写的ncurses程序,它充当Linux控制台的Feedly客户机-看起来它已经死了),所以它看起来更像一个列表(类似于如何或看起来如何)。由于当前的实现没有显示任何帖子的时间,我认为最好让它显示发布的时间(就像Feedly的web版本在“仅标题”演示中所做的那样)

问题是,按照在上实现的模型,我将“已发布”数据作为字符串对象(我不知道如何将其作为整数或直接作为
time\t
对象(Json库似乎不允许这样做)进行提取)。Feedly API docs说,“已发布”数据是“这篇文章发表时的时间戳(毫秒),如RSS提要所报告的(通常不准确)。”一个例子是“1452614967000”


那么,如何将该字符串转换为
time\t
对象,以便以后可以将其格式化为“3分钟前”或“2天前”之类的字符串?或者,我可以做什么更好的事情来获得格式化的字符串(可能性更大)?如有任何帮助,将不胜感激。

首先,使用
strtol
将数字转换为
long
,然后转换为
time\t

#include <cstdlib>
#include <ctime>

using namespace std; // to simplify answer

...
const char* timestr = "1464478647000";
time_t timenum = (time_t) strtol(timestr, NULL, 10); 
#包括
#包括
使用命名空间std;//简化答案
...
const char*timestr=“14644478647000”;
time_t timenum=(time_t)strtol(timestr,NULL,10);

1452614967000不能是
时间戳
时间戳。否则它将是
7月15日,48001,01:30:00-0400
@Sam,这可能是几毫秒,因为如果你去掉结尾的“000”,你会得到今年1月12日的某个时间,而不是人类灭绝很久之后的某个时间:-)什么是“TD”;“意思是”博士?像“摘要”这样的简单单词怎么了?太…呆滞?该死的长?单调?…没读?:-)事实上,刚刚注意到这个问题是以毫秒为单位的,所以我的评论是多余的。我将把它放在那里作为我在吐垃圾之前无法阅读的纪念碑:-)你似乎错过了这一步”转换为“3分钟前”。-)当然,你确实说了“第一,…”。另外,你还需要
ctime
吗?不能保证
time\u t
long
类型。在某些体系结构上,它可能是32位整数,你的强制转换将导致一个owerflow。我认为你需要使用mktime()…请参阅“复制”