DateTime.cpp
Go to the documentation of this file.
1#include "DateTime.h"
2
3#include <limits>
4
5#include <IceUtil/Time.h>
6
8
9#include "ice_conversions.h"
10
11namespace armarx::core::time
12{
13
15 Duration::MicroSeconds(std::numeric_limits<long>::min());
16
21
22 DateTime::DateTime(Duration timeSinceEpoch, ClockType clock, const std::string& hostname) :
23 _timeSinceEpoch{timeSinceEpoch}, _clockType{clock}, _hostname{hostname}
24 {
25 ;
26 }
27
28 DateTime::DateTime(std::int64_t microSecondsSinceEpoch,
29 ClockType clock,
30 const std::string& hostname) :
31 _timeSinceEpoch{Duration::MicroSeconds(microSecondsSinceEpoch)},
32 _clockType{clock},
34 {
35 ;
36 }
37
38 DateTime::DateTime(const IceUtil::Time& ice)
39 {
40 fromIce(ice, *this);
41 }
42
43 DateTime::operator IceUtil::Time() const
44 {
45 IceUtil::Time ice;
46 toIce(ice, *this);
47 return ice;
48 }
49
52 {
53 return Clock::Now();
54 }
55
61
62 std::string
64 {
65 return toString("%Y-%m-%d");
66 }
67
68 std::string
70 {
71 return toString("%H-%M-%S.%%usec");
72 }
73
74 std::string
76 {
77 return toDateString() + "_" + toTimeString();
78 }
79
80 std::string
81 DateTime::toString(const std::string& format) const
82 {
83 return _timeSinceEpoch.toDurationString(format);
84 }
85
86 std::int64_t
88 {
89 return _timeSinceEpoch.toMicroSeconds();
90 }
91
92 std::int64_t
94 {
95 return _timeSinceEpoch.toMilliSeconds();
96 }
97
98 std::int64_t
100 {
101 return _timeSinceEpoch.toSeconds();
102 }
103
106 {
107 return _timeSinceEpoch;
108 }
109
112 {
113 return _clockType;
114 }
115
116 std::string
118 {
119 return _hostname;
120 }
121
122 bool
124 {
126 }
127
128 bool
130 {
131 return not isValid();
132 }
133
136 {
138 }
139
140 DateTime&
142 {
143 _timeSinceEpoch += rhs;
144 return *this;
145 }
146
149 {
151 }
152
153 DateTime&
155 {
156 _timeSinceEpoch -= rhs;
157 return *this;
158 }
159
162 {
164 }
165
166 bool
167 DateTime::operator<(const DateTime& rhs) const
168 {
170 }
171
172 bool
173 DateTime::operator<=(const DateTime& rhs) const
174 {
176 }
177
178 bool
180 {
182 }
183
184 bool
186 {
188 }
189
190 bool
192 {
194 }
195
196 bool
198 {
200 }
201
202 std::ostream&
203 operator<<(std::ostream& out, const DateTime& rhs)
204 {
205 out << rhs.toDateTimeString();
206 return out;
207 }
208
209} // namespace armarx::core::time
static DateTime Now()
Current time on the virtual clock.
Definition Clock.cpp:93
Represents a point in time.
Definition DateTime.h:25
std::int64_t toSecondsSinceEpoch() const
Definition DateTime.cpp:99
static DateTime Now()
Definition DateTime.cpp:51
bool operator!=(const DateTime &rhs) const
Definition DateTime.cpp:197
static const Duration _invalidTimeSinceEpoch
Definition DateTime.h:131
bool operator<=(const DateTime &rhs) const
Definition DateTime.cpp:173
bool operator<(const DateTime &rhs) const
Definition DateTime.cpp:167
DateTime & operator+=(const Duration &rhs)
Definition DateTime.cpp:141
std::string toTimeString() const
Definition DateTime.cpp:69
bool operator>(const DateTime &rhs) const
Definition DateTime.cpp:185
std::string toDateTimeString() const
Definition DateTime.cpp:75
DateTime & operator-=(const Duration &rhs)
Definition DateTime.cpp:154
DateTime operator+(const Duration &rhs) const
Definition DateTime.cpp:135
std::string toString(const std::string &format) const
String representation of current date time according to given format string.
Definition DateTime.cpp:81
std::int64_t toMilliSecondsSinceEpoch() const
Definition DateTime.cpp:93
std::string toDateString() const
Definition DateTime.cpp:63
bool operator==(const DateTime &rhs) const
Definition DateTime.cpp:179
static DateTime Invalid()
Definition DateTime.cpp:57
std::string hostname() const
Definition DateTime.cpp:117
Duration toDurationSinceEpoch() const
Definition DateTime.cpp:105
DateTime operator-(const Duration &rhs) const
Definition DateTime.cpp:148
bool operator>=(const DateTime &rhs) const
Definition DateTime.cpp:191
ClockType clockType() const
Definition DateTime.cpp:111
std::int64_t toMicroSecondsSinceEpoch() const
Definition DateTime.cpp:87
Represents a duration.
Definition Duration.h:17
static Duration MicroSeconds(std::int64_t microSeconds)
Constructs a duration in microseconds.
Definition Duration.cpp:24
std::ostream & operator<<(std::ostream &out, const DateTime &rhs)
Definition DateTime.cpp:203
ClockType
Describes the type of clock.
Definition ClockType.h:10
@ Unknown
Unknown source of time.
Definition ClockType.h:18
void toIce(dto::ClockType::ClockTypeEnum &dto, const ClockType &bo)
void fromIce(const dto::ClockType::ClockTypeEnum &dto, ClockType &bo)