在 CLI 中转换日期时间time_t错误处理C++是否安全

Is it safe to convert DateTime in time_t whithout error handling in C++ CLI?

本文关键字:错误 处理 C++ 安全 是否 time CLI 转换 日期 时间      更新时间:2023-10-16

我想使用下一个代码:

long long DateTimeToTimeT(System::DateTime dt)
{
    System::DateTime epoch(1970, 1, 1, 0, 0, 0, 0);
    long long totalSeconds = (dt - epoch).TotalSeconds;
    return totalSeconds >= 0 ? totalSeconds : 0;
}

所以问题是:它是异常安全的还是我应该在这里处理一些错误?

我的意思是:在这种情况下,从double(即总秒数)转换为long long是否安全?

是的,这是安全的:两个日期的减法永远不会抛出(http://msdn.microsoft.com/en-us/library/1905yhe2(v=vs.110).aspx),因为TimeSpan覆盖的间隔比有效日期大得多。