我得到了一个时间戳字符串,因为这个3.44063E+08
。我怎样才能将其转换为正常时间,如12时10分22秒,等时间戳问题
Q
时间戳问题
1
A
回答
4
的数值是time_t
,你需要把它其中localtime()
或gmtime()
,分别转换为本地或Greenwhich时间之后,你可以使用strftime()
以您选择的格式打印。
这里是一个快速和完整的例子:
[email protected]:/tmp$ cat timeformat.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
time_t tt = 3.44063E+08;
struct tm tm;
char buf[32];
tm = *localtime(&tt);
strftime(buf, 31, "%Y-%m-%d %H:%M:%S", &tm);
printf("%s\n", buf);
return 0;
}
[email protected]:/tmp$ gcc -o timeformat timeformat.c
[email protected]:/tmp$ ./timeformat
1980-11-25 23:03:20
[email protected]:/tmp$
编辑:而当你标记你的问题C++,看看Boost Date_Time其中有很多提供给。但正如我的示例所示,对于简单的“数字到文本”转换,您并不需要它。
1
指数格式的时间戳表示有人使用浮点时间计数器,并且在编写代码打印时没有注意。如果您只有一段文字,则无法将其转换为准确的时间,因为它只能精确到1000秒(大约20分钟)。如果您真的将原件作为双份,您可以从中获得准确的时间。如果你把它当作浮动,上帝会帮助你。
该数字(可能)是一个time_t,它是Unix时代(1970年1月1日)以来的秒数。您可以使用gmtime()或localtime()将其转换为分解时间结构(年,月等),然后使用strftime()将其转换为任何文本格式。如果你只有文本而不是实际的数字,你必须首先使用strtod()将其解析为数字。
1
更多的上下文会很有用,但假设你已经拥有了它,3.44063E + 08是344063000,它作为time_t转换为1980-11-26 05:03:20(utc)。如果这对您有意义的时间戳,那么它是time_t:自1970-01-01以来的秒数。
另一种可能性是它来自Excel或其他Microsoft Office产品,其存储日期为自1900年以来的日期,或在某些情况下存储日期为1899年。这将转换为943,893年的某个日期。如果这是有道理的,就像你正在做天文或慢放射性同位素计算等一样,那么它在一天的早些时候,大概是03:42。
相关问题
- 1. 时间戳问题
- 2. 时间戳问题
- 3. 时间戳,计时器,时间问题
- 4. MySQL的时间戳问题
- 5. Android - 时间戳问题
- 6. C#时间戳问题
- 7. Laravel 4.1时间戳()问题
- 8. php时间戳问题
- 9. Cassandra时间戳问题
- 10. PHP - 时间戳问题[LDAP]
- 11. 时间戳有问题
- 12. 时间戳更新问题
- 13. asp.net时间戳问题
- 14. JavaScript时间戳问题
- 15. 时间戳转换问题
- 16. MYSQL时间戳问题
- 17. 时间戳问题:Python无法识别时间戳
- 18. PHP时间戳小时问题
- 19. STR_TO_DATE问题与24小时时间戳
- 20. SQL插入时间戳问题
- 21. scapy:UDP碎片整理时间戳问题
- 22. 海军报图时间戳问题
- 23. 问题与查询中的时间戳
- 24. 工厂女孩时间戳问题
- 25. MySQL的时间戳比较问题
- 26. Teradata BTEQ - 无效的时间戳问题
- 27. 关于时间戳格式的问题
- 28. Python日期时间戳记问题
- 29. Hive时间戳比较问题
- 30. Highcharts动态x轴时间戳问题
你从哪里得到它的? – casablanca 2011-04-13 03:10:25
你从哪里得到时间戳? _你有时间戳吗?换句话说,请说明你已经拥有了什么。 – 2011-04-13 03:11:03
我从winxp系统应用程序日志文件中得到 – 2011-04-13 03:11:10