aws-crt-cpp
C++ wrapper around the aws-c-* libraries. Provides Cross-Platform Transport Protocols and SSL/TLS implementations for C++.
Loading...
Searching...
No Matches
DateTime.h
Go to the documentation of this file.
1#pragma once
6#include <aws/crt/Exports.h>
7
8#include <aws/crt/Types.h>
9
10#include <aws/common/date_time.h>
11
12#include <chrono>
13
14namespace Aws
15{
16 namespace Crt
17 {
18 enum class DateFormat
19 {
20 RFC822 = AWS_DATE_FORMAT_RFC822,
21 ISO_8601 = AWS_DATE_FORMAT_ISO_8601,
22 AutoDetect = AWS_DATE_FORMAT_AUTO_DETECT,
23 };
24
25 enum class Month
26 {
27 January = AWS_DATE_MONTH_JANUARY,
28 February = AWS_DATE_MONTH_FEBRUARY,
29 March = AWS_DATE_MONTH_MARCH,
30 April = AWS_DATE_MONTH_APRIL,
31 May = AWS_DATE_MONTH_MAY,
32 June = AWS_DATE_MONTH_JUNE,
33 July = AWS_DATE_MONTH_JULY,
34 August = AWS_DATE_MONTH_AUGUST,
35 September = AWS_DATE_MONTH_SEPTEMBER,
36 October = AWS_DATE_MONTH_OCTOBER,
37 November = AWS_DATE_MONTH_NOVEMBER,
38 December = AWS_DATE_MONTH_DECEMBER,
39 };
40
41 enum class DayOfWeek
42 {
43 Sunday = AWS_DATE_DAY_OF_WEEK_SUNDAY,
44 Monday = AWS_DATE_DAY_OF_WEEK_MONDAY,
45 Tuesday = AWS_DATE_DAY_OF_WEEK_TUESDAY,
46 Wednesday = AWS_DATE_DAY_OF_WEEK_WEDNESDAY,
47 Thursday = AWS_DATE_DAY_OF_WEEK_THURSDAY,
48 Friday = AWS_DATE_DAY_OF_WEEK_FRIDAY,
49 Saturday = AWS_DATE_DAY_OF_WEEK_SATURDAY,
50 };
51
53 {
54 public:
58 DateTime() noexcept;
59
63 DateTime(const std::chrono::system_clock::time_point &timepointToAssign) noexcept;
64
68 DateTime(uint64_t millisSinceEpoch) noexcept;
69
73 DateTime(double epoch_millis) noexcept;
74
78 DateTime(const char *timestamp, DateFormat format) noexcept;
79
80 bool operator==(const DateTime &other) const noexcept;
81 bool operator<(const DateTime &other) const noexcept;
82 bool operator>(const DateTime &other) const noexcept;
83 bool operator!=(const DateTime &other) const noexcept;
84 bool operator<=(const DateTime &other) const noexcept;
85 bool operator>=(const DateTime &other) const noexcept;
86
87 DateTime operator+(const std::chrono::milliseconds &a) const noexcept;
88 DateTime operator-(const std::chrono::milliseconds &a) const noexcept;
89
93 DateTime &operator=(double secondsSinceEpoch) noexcept;
94
98 DateTime &operator=(uint64_t millisSinceEpoch) noexcept;
99
103 DateTime &operator=(const std::chrono::system_clock::time_point &timepointToAssign) noexcept;
104
108 DateTime &operator=(const char *timestamp) noexcept;
109
110 explicit operator bool() const noexcept;
111 int GetLastError() const noexcept;
112
116 bool ToLocalTimeString(DateFormat format, ByteBuf &outputBuf) const noexcept;
117
121 bool ToGmtString(DateFormat format, ByteBuf &outputBuf) const noexcept;
122
126 double SecondsWithMSPrecision() const noexcept;
127
131 uint64_t Millis() const noexcept;
132
137 std::chrono::system_clock::time_point UnderlyingTimestamp() const noexcept;
138
142 uint16_t GetYear(bool localTime = false) const noexcept;
143
147 Month GetMonth(bool localTime = false) const noexcept;
148
153 uint8_t GetDay(bool localTime = false) const noexcept;
154
159 DayOfWeek GetDayOfWeek(bool localTime = false) const noexcept;
160
164 uint8_t GetHour(bool localTime = false) const noexcept;
165
169 uint8_t GetMinute(bool localTime = false) const noexcept;
170
174 uint8_t GetSecond(bool localTime = false) const noexcept;
175
180 bool IsDST(bool localTime = false) const noexcept;
181
185 static DateTime Now() noexcept;
186
191 std::chrono::milliseconds operator-(const DateTime &other) const noexcept;
192
193 private:
194 aws_date_time m_date_time;
195 bool m_good;
196 };
197 } // namespace Crt
198} // namespace Aws
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition DateTime.h:53
constexpr bool operator<=(const basic_string_view< CharT, Traits > &lhs, const basic_string_view< CharT, Traits > &rhs) noexcept
Definition StringView.h:766
bool operator<(const basic_string_view< CharT, Traits > &lhs, const basic_string_view< CharT, Traits > &rhs) noexcept
Definition StringView.h:716
constexpr bool operator>=(const basic_string_view< CharT, Traits > &lhs, const basic_string_view< CharT, Traits > &rhs) noexcept
Definition StringView.h:791
DateFormat
Definition DateTime.h:19
constexpr bool operator>(const basic_string_view< CharT, Traits > &lhs, const basic_string_view< CharT, Traits > &rhs) noexcept
Definition StringView.h:741
aws_byte_buf ByteBuf
Definition Types.h:30
Month
Definition DateTime.h:26
DayOfWeek
Definition DateTime.h:42
bool operator==(const basic_string_view< CharT, Traits > &lhs, const basic_string_view< CharT, Traits > &rhs) noexcept
Definition StringView.h:666
bool operator!=(const basic_string_view< CharT, Traits > &lhs, const basic_string_view< CharT, Traits > &rhs) noexcept
Definition StringView.h:691
Definition Allocator.h:11