1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2 file Copyright.txt or https://cmake.org/licensing for details. */ 3 #pragma once 4 5 #include "cmConfigure.h" // IWYU pragma: keep 6 7 #include <ctime> 8 #include <string> 9 10 /** \class cmTimestamp 11 * \brief Utility class to generate string representation of a timestamp 12 * 13 */ 14 class cmTimestamp 15 { 16 public: 17 std::string CurrentTime(const std::string& formatString, bool utcFlag) const; 18 19 std::string FileModificationTime(const char* path, 20 const std::string& formatString, 21 bool utcFlag) const; 22 23 std::string CreateTimestampFromTimeT(time_t timeT, std::string formatString, 24 bool utcFlag) const; 25 26 private: 27 time_t CreateUtcTimeTFromTm(struct tm& timeStruct) const; 28 29 std::string AddTimestampComponent(char flag, struct tm& timeStruct, 30 time_t timeT) const; 31 }; 32