CMake Nightly Date Stamp
[kiteware-cmake.git] / Source / cmTimestamp.h
blob05c6342cb23093c8f2cffbbdb49cbdb82cf966a5
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
5 #include "cmConfigure.h" // IWYU pragma: keep
7 #include <cstdint>
8 #include <ctime>
9 #include <string>
11 /** \class cmTimestamp
12 * \brief Utility class to generate string representation of a timestamp
15 class cmTimestamp
17 public:
18 std::string CurrentTime(const std::string& formatString, bool utcFlag) const;
20 std::string FileModificationTime(const char* path,
21 const std::string& formatString,
22 bool utcFlag) const;
24 std::string CreateTimestampFromTimeT(time_t timeT, std::string formatString,
25 bool utcFlag) const;
27 std::string CreateTimestampFromTimeT(time_t timeT, uint32_t microseconds,
28 std::string formatString,
29 bool utcFlag) const;
31 private:
32 time_t CreateUtcTimeTFromTm(struct tm& timeStruct) const;
34 std::string AddTimestampComponent(char flag, struct tm& timeStruct,
35 time_t timeT, bool utcFlag,
36 uint32_t microseconds) const;