AWS SDK for C++

AWS SDK for C++ Version 1.11.903

Loading...
Searching...
No Matches
DateTime.h
1
6#pragma once
7
8#include <aws/core/Core_EXPORTS.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/core/utils/logging/LogMacros.h>
11#include <chrono>
12
13namespace Aws
14{
15 namespace Utils
16 {
17 enum class DateFormat
18 {
19 RFC822, //for http headers
20 ISO_8601, //for query and xml payloads
21 ISO_8601_BASIC, // for retry headers and signers
23 };
24
25 enum class Month
26 {
27 January = 0,
29 March,
30 April,
31 May,
32 June,
33 July,
34 August,
36 October,
39 };
40
41 enum class DayOfWeek
42 {
43 Sunday = 0,
44 Monday,
45 Tuesday,
48 Friday,
50 };
51
55 class AWS_CORE_API DateTime
56 {
57 public:
62
66 DateTime(const std::chrono::system_clock::time_point& timepointToAssign);
67
71 DateTime(int64_t millisSinceEpoch);
72
78 DateTime(double secondsSinceEpoch);
79
84 DateTime(uint64_t secondsSinceEpoch);
85
89 DateTime(const Aws::String& timestamp, DateFormat format);
90
94 DateTime(const char* timestamp, DateFormat format);
95
96 bool operator == (const DateTime& other) const;
97 bool operator < (const DateTime& other) const;
98 bool operator > (const DateTime& other) const;
99 bool operator != (const DateTime& other) const;
100 bool operator <= (const DateTime& other) const;
101 bool operator >= (const DateTime& other) const;
102
103 DateTime operator+(const std::chrono::milliseconds& a) const;
104 DateTime operator-(const std::chrono::milliseconds& a) const;
105
111 DateTime& operator=(double secondsSinceEpoch);
112
116 DateTime& operator=(int64_t millisSinceEpoch);
117
121 DateTime& operator=(const std::chrono::system_clock::time_point& timepointToAssign);
122
126 DateTime& operator=(const Aws::String& timestamp);
127
131 inline bool WasParseSuccessful() const { return m_valid; }
132
137
141 Aws::String ToLocalTimeString(const char* formatStr) const;
142
147
151 Aws::String ToGmtString(const char* formatStr) const;
152
157
164
168 int64_t Seconds() const;
169
173 int64_t Millis() const;
174
178 std::chrono::system_clock::time_point UnderlyingTimestamp() const;
179
183 int GetYear(bool localTime = false) const;
184
188 Month GetMonth(bool localTime = false) const;
189
193 int GetDay(bool localTime = false) const;
194
198 DayOfWeek GetDayOfWeek(bool localTime = false) const;
199
203 int GetHour(bool localTime = false) const;
204
208 int GetMinute(bool localTime = false) const;
209
213 int GetSecond(bool localTime = false) const;
214
218 bool IsDST(bool localTime = false) const;
219
223 static DateTime Now();
224
228 static int64_t CurrentTimeMillis();
229
233 static Aws::String CalculateLocalTimestampAsString(const char* formatStr);
234
238 static Aws::String CalculateGmtTimestampAsString(const char* formatStr);
239
244
249
255
259 static std::chrono::milliseconds Diff(const DateTime& a, const DateTime& b);
260
261 std::chrono::milliseconds operator - (const DateTime& other) const;
262 private:
263 std::chrono::system_clock::time_point m_time;
264 bool m_valid;
265
266 void ConvertTimestampStringToTimePoint(const char* timestamp, DateFormat format);
267 tm GetTimeStruct(bool localTime) const;
268 tm ConvertTimestampToLocalTimeStruct() const;
269 tm ConvertTimestampToGmtStruct() const;
270 };
271
272 } // namespace Utils
273} // namespace Aws
DateTime(const char *timestamp, DateFormat format)
DateTime & operator=(int64_t millisSinceEpoch)
DateTime operator-(const std::chrono::milliseconds &a) const
int GetYear(bool localTime=false) const
static Aws::String CalculateLocalTimestampAsString(const char *formatStr)
DateTime(int64_t millisSinceEpoch)
DateTime operator+(const std::chrono::milliseconds &a) const
DateTime(const std::chrono::system_clock::time_point &timepointToAssign)
DateTime(double secondsSinceEpoch)
static std::chrono::milliseconds Diff(const DateTime &a, const DateTime &b)
Aws::String ToGmtString(const char *formatStr) const
static Aws::String CalculateGmtTimeWithMsPrecision()
DayOfWeek GetDayOfWeek(bool localTime=false) const
Aws::String ToGmtString(DateFormat format) const
int GetMinute(bool localTime=false) const
Aws::String ToLocalTimeString(DateFormat format) const
static int CalculateCurrentHour()
DateTime & operator=(const std::chrono::system_clock::time_point &timepointToAssign)
std::chrono::system_clock::time_point UnderlyingTimestamp() const
int64_t Seconds() const
static DateTime Now()
Month GetMonth(bool localTime=false) const
int64_t Millis() const
DateTime(uint64_t secondsSinceEpoch)
static int64_t CurrentTimeMillis()
bool IsDST(bool localTime=false) const
static Aws::String CalculateGmtTimestampAsString(const char *formatStr)
DateTime(const Aws::String &timestamp, DateFormat format)
double SecondsWithMSPrecision() const
int GetHour(bool localTime=false) const
DateTime & operator=(double secondsSinceEpoch)
Aws::String ToGmtStringWithMs() const
bool WasParseSuccessful() const
Definition DateTime.h:131
int GetDay(bool localTime=false) const
int GetSecond(bool localTime=false) const
static double ComputeCurrentTimestampInAmazonFormat()
DateTime & operator=(const Aws::String &timestamp)
Aws::String ToLocalTimeString(const char *formatStr) const
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97