Visual C++ 如何将日期时间转换为自 1970 年以来的秒数

Posted

技术标签:

【中文标题】Visual C++ 如何将日期时间转换为自 1970 年以来的秒数【英文标题】:Visual C++ how to convert Datetime to number of seconds since 1970 【发布时间】:2013-05-02 06:28:52 【问题描述】:

我正在尝试转换日期时间: http://msdn.microsoft.com/en-us/library/03ybds8y

自 1970 年以来使用 Visual C++ 的秒数。

我搜索了许多解决方案,但无法使它们中的任何一个起作用。 谢谢

【问题讨论】:

【参考方案1】:

您可以使用两个日期之间的差异TimeSpan 来执行此操作。像这样的:

DateTime dtDateYouWantToConvert = /* .... */
DateTime dtReference(1970, 1, 1, 0, 0, 0);

TimeSpan tsDiff = dtDateYouWantToConvert - dtReference;

// calculate number of seconds (including fractional) since 1/1/1970
double dSeconds = tsDiff.TotalSeconds;

【讨论】:

您好,谢谢您的回答。 另一个小问题,如何将秒数转换回字符串形式的时间?我的意思是从 dSeconds 回到 DateTime? 只需将TimeSpan 添加(或减去)到DateTime,您将得到一个DateTime,您可以格式化,或使用TimeSpan.ToString(format) 获取TimeSpan 的字符串. 如何将秒数转换为日期时间? 我找到了一个有效的答案,我不知道是否有更简单的东西:time_t ts;双 dSeconds = tsDiff.TotalSeconds; ts = (time_t) dSeconds;结构 tm *tm_ts = gmtime(&ts);字符 str_temp44 [80] = ""; strftime (str_temp44, 80, "%a, %d.%m.%Y %H:%M:%S", tm_ts);

以上是关于Visual C++ 如何将日期时间转换为自 1970 年以来的秒数的主要内容,如果未能解决你的问题,请参考以下文章

如何将时间字符串转换为自定义日期格式?

如何在 Visual Studio 中为自定义配置文件添加配置转换?

如何将 Python 日期时间对象的时间部分转换为自一天开始以来的总秒数

将日期、时间和 UTC 偏移值转换为自 unix 纪元以来的毫秒数?

如何禁用 Visual Studio 的默认构建并将其替换为自定义构建工具?

如何将 C++ Visual Studio 2008 项目降级到 2005