c++ - 如何将 C++ time_t 对象设置为纪元?

标签 c++ datetime stl

这个问题类似于下面的问题:

convert epoch to time_t

Converting time_t to int

但我还没有找到答案。

如果您想获取当前日期/时间,您可以调用time(0)time(NULL),如下所示标准示例:

// current date/time based on current system
   time_t now = time(0);

我想定义一个函数,它将返回一个 time_t 并允许客户端在发生错误时传递一个可选的默认返回值。此外,我想为该“默认”参数设置默认值。这在我拥有的库中提供了对称性,具有跨多种语言的一对一对应部分,因此我不打算重新设计所有这些。

我的想法是将默认返回设置为纪元。然后,客户在理论上可以很容易地评估该返回,并决定返回的纪元很可能(如果不总是)表明它是无效的。我可以想到一些替代方案,但没有什么是干净的,也符合我现有的模式。

是否有一种简短而有趣的方法可以使我的函数签名具有此对象的默认值等于纪元?比如

   ...myfunc(...., const time_t &defVal=time(0) );

如果 0 表示纪元而不是当前日期/时间,那就完美了!

最佳答案

函数 std::time() 返回自纪元以来的秒数作为 std::time_t。因此,要在纪元设置 std::time_t 后找到 0 秒:

std::time_t t = 0;

所以你可以这样做:

void myfunc(const std::time_t& defVal = 0)

关于c++ - 如何将 C++ time_t 对象设置为纪元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50145198/

相关文章:

C++ 用户输入一个字符,变量保持为0

c++ - 处理未知大小的输入

c++ - 没有已定义函数的匹配函数

python - Matplotlib - 绘制时间时,它会在秒后添加小数零

sql-server - 转换日期 DD.MM.YYYY hh :mm:ss to YYYY-MM-DD in SSIS

c++ - 将结构化数据投影到 std::vector 的最有效方法是什么?

c++ - 新的 C++11 emplace 方法是否会使以前的 C++98/03 push_back/insert 方法过时?

c++ - 如何在两组上做双指针技术

c++ - Opencv STL vector to Mat 用于矩阵乘法

python - 创建带有编号时间窗口的新数据框列