文件中时间戳中的秒值有时会被舍入

seconds value in timestamp in filename gettin rounded off sometimes

本文关键字:舍入 时间戳 文件      更新时间:2023-10-16

对于一个任务,我必须创建带有时间戳附加在文件名中的文件,以实现唯一性。还有一个程序可以读取这些文件。其他程序选择这些文件的条件是文件名应该包含14位时间戳(YYYYMMDDHHMMSS),我通过SYSTEMTIME获得这些时间戳。我面临的问题是,有时秒字段来作为例如'10',在文件名中它被四舍五入,只有'1'被显示为时间戳中的秒字段。另一个程序不选择这个文件,因为时间戳现在只包含13位数字。除了检查时间戳的长度并在末尾添加一个'0'之外,我如何通过任何方法解决这个问题?

谢谢Mahboob

附上一些示例代码更好地描述。

我使用的代码如下,没有遇到你遇到的问题。

  int64 timestamp = time(NULL);
  char data[kFileNameLength + 1]; 
  tm time_struct;
  strftime(data, sizeof(data), "%Y%m%d%H%M%S", localtime_r(&timestamp, &time_struct));
  return std::string(data);