【发布时间】:2013-11-04 21:17:52
【问题描述】:
我有一个 13 位数的字符串,自 1970 年 1 月 1 日以来的毫秒数。我需要将其转换为日期时间。第一步是将其转换为可用的数字格式。在 13 个字符时,它超出了 ulong 和 long 的限制,最多有 10 位数字。我正在查看 int64 转换。把这个野兽变成数字格式的最好方法是什么?我在 windows 平台上使用 c++
示例 "1382507187943" --> 数字? --> 日期时间?
谢谢!
第 2 部分
谢谢你们!我正在使用 c++ 本机。感谢海报 2 提供代码。
我试过了,它在 str 包含数字并且是 std::string: 的情况下也能正常工作:
__int64 u = _atoi64( str.c_str() );
第三部分
实际上,13 位数字不适合 strtoul。我这样做并取回了正确的字符串。
__int64 u = _atoi64( str.c_str() );
time_t c;
//c = strtoul( "1382507187943", NULL, 0 );
c = u;
time(&c);
std::string s = ctime( &c );
【问题讨论】:
-
不要在你的文本中说“我正在使用c++”,而是将标签添加到人们可以看到的问题中,以便人们稍后搜索时这里的标签系统可以使用它。你知道如何使用其他三个标签,对吧?
-
为什么你会得到这样的字符串中的时间?计算机已经将当前时间(自 1970 年 1 月 1 日起以秒为单位)作为整数!
-
等待有用的答案有一段时间了。我混合使用了我的答案和海报 2 的答案,然后海报 3 提供了一个很好的答案。你如何标记它?
-
我不知道他们这次为什么会这样发送。 MS 很有用,但还有其他发送方式。我只需要使用我所拥有的。