diff options
Diffstat (limited to 'src/util/time.h')
-rw-r--r-- | src/util/time.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/util/time.h b/src/util/time.h new file mode 100644 index 0000000000..f2e2747434 --- /dev/null +++ b/src/util/time.h @@ -0,0 +1,38 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2018 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_UTIL_TIME_H +#define BITCOIN_UTIL_TIME_H + +#include <stdint.h> +#include <string> + +/** + * GetTimeMicros() and GetTimeMillis() both return the system time, but in + * different units. GetTime() returns the system time in seconds, but also + * supports mocktime, where the time can be specified by the user, eg for + * testing (eg with the setmocktime rpc, or -mocktime argument). + * + * TODO: Rework these functions to be type-safe (so that we don't inadvertently + * compare numbers with different units, or compare a mocktime to system time). + */ + +int64_t GetTime(); +int64_t GetTimeMillis(); +int64_t GetTimeMicros(); +int64_t GetSystemTimeInSeconds(); // Like GetTime(), but not mockable +void SetMockTime(int64_t nMockTimeIn); +int64_t GetMockTime(); +void MilliSleep(int64_t n); + +/** + * ISO 8601 formatting is preferred. Use the FormatISO8601{DateTime,Date,Time} + * helper functions if possible. + */ +std::string FormatISO8601DateTime(int64_t nTime); +std::string FormatISO8601Date(int64_t nTime); +std::string FormatISO8601Time(int64_t nTime); + +#endif // BITCOIN_UTIL_TIME_H |