AWS SDK for C++
AWS SDK for C++
Loading...
Searching...
No Matches
DateTime.h
Go to the documentation of this file.
1
6#pragma once
7
10#include <chrono>
11
12namespace Aws
13{
14 namespace Utils
15 {
16 enum class DateFormat
17 {
18 RFC822, //for http headers
19 ISO_8601, //for query and xml payloads
20 ISO_8601_BASIC, // for retry headers and signers
22 };
23
24 enum class Month
25 {
26 January = 0,
28 March,
29 April,
30 May,
31 June,
32 July,
33 August,
35 October,
38 };
39
40 enum class DayOfWeek
41 {
42 Sunday = 0,
43 Monday,
44 Tuesday,
47 Friday,
49 };
50
55 {
56 public:
61
65 DateTime(const std::chrono::system_clock::time_point& timepointToAssign);
66
70 DateTime(int64_t millisSinceEpoch);
71
75 DateTime(double epoch_millis);
76
81
85 DateTime(const char* timestamp, DateFormat format);
86
87 bool operator == (const DateTime& other) const;
88 bool operator < (const DateTime& other) const;
89 bool operator > (const DateTime& other) const;
90 bool operator != (const DateTime& other) const;
91 bool operator <= (const DateTime& other) const;
92 bool operator >= (const DateTime& other) const;
93
94 DateTime operator+(const std::chrono::milliseconds& a) const;
95 DateTime operator-(const std::chrono::milliseconds& a) const;
96
100 DateTime& operator=(double secondsSinceEpoch);
101
105 DateTime& operator=(int64_t millisSinceEpoch);
106
110 DateTime& operator=(const std::chrono::system_clock::time_point& timepointToAssign);
111
115 DateTime& operator=(const Aws::String& timestamp);
116
120 inline bool WasParseSuccessful() const { return m_valid; }
121
126
130 Aws::String ToLocalTimeString(const char* formatStr) const;
131
136
140 Aws::String ToGmtString(const char* formatStr) const;
141
146
150 int64_t Seconds() const;
151
155 int64_t Millis() const;
156
160 std::chrono::system_clock::time_point UnderlyingTimestamp() const;
161
165 int GetYear(bool localTime = false) const;
166
170 Month GetMonth(bool localTime = false) const;
171
175 int GetDay(bool localTime = false) const;
176
180 DayOfWeek GetDayOfWeek(bool localTime = false) const;
181
185 int GetHour(bool localTime = false) const;
186
190 int GetMinute(bool localTime = false) const;
191
195 int GetSecond(bool localTime = false) const;
196
200 bool IsDST(bool localTime = false) const;
201
205 static DateTime Now();
206
210 static int64_t CurrentTimeMillis();
211
215 static Aws::String CalculateLocalTimestampAsString(const char* formatStr);
216
220 static Aws::String CalculateGmtTimestampAsString(const char* formatStr);
221
226
231
237
241 static std::chrono::milliseconds Diff(const DateTime& a, const DateTime& b);
242
243 std::chrono::milliseconds operator - (const DateTime& other) const;
244 private:
245 std::chrono::system_clock::time_point m_time;
246 bool m_valid;
247
248 void ConvertTimestampStringToTimePoint(const char* timestamp, DateFormat format);
249 tm GetTimeStruct(bool localTime) const;
250 tm ConvertTimestampToLocalTimeStruct() const;
251 tm ConvertTimestampToGmtStruct() const;
252 };
253
254 } // namespace Utils
255} // namespace Aws
#define AWS_CORE_API
Definition: Core_EXPORTS.h:26
const cJSON *const b
Definition: cJSON.h:269
char const int const cJSON_AS4CPP_bool format
Definition: cJSON.h:174
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)
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
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)
DateTime(double epoch_millis)
bool WasParseSuccessful() const
Definition: DateTime.h:120
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