8#ifndef INCLUDED_BDLT_DATETIMETZFORMATTER
9#define INCLUDED_BDLT_DATETIMETZFORMATTER
84#include <bdlscm_version.h>
92#include <bsl_iosfwd.h>
93#include <bsl_string_view.h>
98class DatetimeTzFormatter_Cache;
108template <
class t_CHAR>
165 template <
class t_ITERATOR>
172 template <
class t_ITERATOR>
177 template <
class t_ITERATOR>
220template <
class t_CHAR>
224, d_datetimeFormatter()
225, d_timeZoneFormatter()
229template <
class t_CHAR>
235 if (t_CHAR(
'i') == specInOut->
front()) {
242 return d_datetimeFormatter.parseNextSpecifier(specInOut) ||
243 d_timeZoneFormatter.parseNextSpecifier(specInOut);
246template <
class t_CHAR>
250 d_datetimeFormatter.parseDefault();
251 d_timeZoneFormatter.parseDefault();
254template <
class t_CHAR>
258 d_datetimeFormatter.parseIso8601();
259 d_timeZoneFormatter.parseIso8601();
262template <
class t_CHAR>
267 d_datetimeFormatter.postprocess(spec);
268 d_timeZoneFormatter.postprocess(spec);
271template <
class t_CHAR>
275 return d_datetimeFormatter.parseNextModifier(specInOut) ||
276 d_timeZoneFormatter.parseNextModifier(specInOut);
280template <
class t_CHAR>
284 return d_datetimeFormatter.extraSections() |
285 d_timeZoneFormatter.extraSections();
288template <
class t_CHAR>
292 return d_fixedWidth + d_datetimeFormatter.totalWidth(value.
datetime()) +
293 d_timeZoneFormatter.totalWidth(value.
offset());
296template <
class t_CHAR>
297template <
class t_ITERATOR>
306 if (t_CHAR(
'i') == specInOut->
front()) {
307 *outIt = formatIso8601(*outIt, value);
312 return d_datetimeFormatter.formatNextSpecifier(specInOut,
315 d_timeZoneFormatter.formatNextSpecifier(specInOut,
320template <
class t_CHAR>
321template <
class t_ITERATOR>
326 out = d_datetimeFormatter.formatDefault(out, value.
datetime());
327 out = d_timeZoneFormatter.formatDefault(out, value.
offset());
331template <
class t_CHAR>
332template <
class t_ITERATOR>
337 out = d_datetimeFormatter.formatIso8601(out, value.
datetime());
338 out = d_timeZoneFormatter.formatIso8601(out, value.
offset());
350: d_datetimeFormatCache(value)
359 return d_datetimeFormatCache;
374template <
class t_CHAR>
377 typedef BloombergLP::bdlt::DatetimeTz DatetimeTz;
378 typedef BloombergLP::bdlt::DatetimeTzFormatter_Cache FormatCache;
379 typedef BloombergLP::bdlt::Formatter<
380 BloombergLP::bdlt::DatetimeTzFormatter, t_CHAR> Formatter;
383 Formatter d_formatter;
389 template <
class t_PARSE_CONTEXT>
391 t_PARSE_CONTEXT& context)
393 return d_formatter.parse(context);
401 template <
class t_FORMAT_CONTEXT>
402 typename t_FORMAT_CONTEXT::iterator
format(
403 const DatetimeTz& value,
404 t_FORMAT_CONTEXT& formatContext)
const
406 const FormatCache formatCache(value.localDatetime(), value.offset());
407 return d_formatter.format(formatCache, formatContext);
Definition bdlt_datetimetz.h:308
Definition bdlt_datetime.h:330
Definition bslstl_stringview.h:471
BSLS_KEYWORD_CONSTEXPR_CPP14 const_reference front() const
Definition bslstl_stringview.h:1966
BSLS_KEYWORD_CONSTEXPR_CPP14 void remove_prefix(size_type numChars)
Definition bslstl_stringview.h:1800
BSLS_KEYWORD_CONSTEXPR bool empty() const BSLS_KEYWORD_NOEXCEPT
Return true if this view has length 0, and false otherwise.
Definition bslstl_stringview.h:1931
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_CONSTEXPR_CPP20
Definition bsls_keyword.h:645
Definition bbldc_basicisma30360.h:112
Definition bdlat_valuetypefunctions.h:939