summaryrefslogtreecommitdiffstats
path: root/Source/cmTimestamp.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmTimestamp.h')
-rw-r--r--Source/cmTimestamp.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/Source/cmTimestamp.h b/Source/cmTimestamp.h
new file mode 100644
index 0000000..fdee564
--- /dev/null
+++ b/Source/cmTimestamp.h
@@ -0,0 +1,36 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmTimestamp_h
+#define cmTimestamp_h
+
+#include <cmConfigure.h> // IWYU pragma: keep
+
+#include <string>
+#include <time.h>
+
+/** \class cmTimestamp
+ * \brief Utility class to generate string representation of a timestamp
+ *
+ */
+class cmTimestamp
+{
+public:
+ cmTimestamp() {}
+
+ std::string CurrentTime(const std::string& formatString, bool utcFlag);
+
+ std::string FileModificationTime(const char* path,
+ const std::string& formatString,
+ bool utcFlag);
+
+private:
+ time_t CreateUtcTimeTFromTm(struct tm& timeStruct) const;
+
+ std::string CreateTimestampFromTimeT(time_t timeT, std::string formatString,
+ bool utcFlag) const;
+
+ std::string AddTimestampComponent(char flag, struct tm& timeStruct,
+ time_t timeT) const;
+};
+
+#endif