8#ifndef INCLUDED_BDLT_DATETZFORMATTER
9#define INCLUDED_BDLT_DATETZFORMATTER
76#include <bdlscm_version.h>
84#include <bsl_iosfwd.h>
85#include <bsl_string_view.h>
90class DateTzFormatter_Cache;
99template <
class t_CHAR>
107 Date_Formatter d_dateFormatter;
110 TimeZone_Formatter d_timeZoneFormatter;
160 template <
class t_ITERATOR>
167 template <
class t_ITERATOR>
172 template <
class t_ITERATOR>
214template <
class t_CHAR>
218, d_timeZoneFormatter()
222template <
class t_CHAR>
226 d_dateFormatter. parseDefault();
227 d_timeZoneFormatter.parseDefault();
230template <
class t_CHAR>
234 d_dateFormatter. parseIso8601();
235 d_timeZoneFormatter.parseIso8601();
238template <
class t_CHAR>
242 return d_dateFormatter. parseNextModifier(specInOut) ||
243 d_timeZoneFormatter.parseNextModifier(specInOut);
246template <
class t_CHAR>
252 if (t_CHAR(
'i') == specInOut->
front()) {
255 d_dateFormatter. parseIso8601();
256 d_timeZoneFormatter.parseIso8601();
262 return d_dateFormatter. parseNextSpecifier(specInOut) ||
263 d_timeZoneFormatter.parseNextSpecifier(specInOut);
266template <
class t_CHAR>
271 d_dateFormatter. postprocess(spec);
272 d_timeZoneFormatter.postprocess(spec);
276template <
class t_CHAR>
280 return d_dateFormatter.extraSections() |
281 d_timeZoneFormatter.extraSections();
284template <
class t_CHAR>
288 return d_dateFormatter. totalWidth(value.
date()) +
289 d_timeZoneFormatter.totalWidth(value.
offset());
292template <
class t_CHAR>
293template <
class t_ITERATOR>
302 if (t_CHAR(
'i') == specInOut->
front()) {
303 *outIt = formatIso8601(*outIt, value);
308 return d_dateFormatter. formatNextSpecifier(specInOut,
311 d_timeZoneFormatter.formatNextSpecifier(specInOut,
316template <
class t_CHAR>
317template <
class t_ITERATOR>
322 out = d_dateFormatter. formatDefault(out, value.
date());
323 out = d_timeZoneFormatter.formatDefault(out, value.
offset());
328template <
class t_CHAR>
329template <
class t_ITERATOR>
334 out = d_dateFormatter. formatIso8601(out, value.
date());
335 out = d_timeZoneFormatter.formatIso8601(out, value.
offset());
347: d_dateFormatCache(date)
355 return d_dateFormatCache;
370template <
class t_CHAR>
373 typedef BloombergLP::bdlt::DateTz DateTz;
374 typedef BloombergLP::bdlt::DateTzFormatter_Cache FormatCache;
375 typedef BloombergLP::bdlt::Formatter<
376 BloombergLP::bdlt::DateTzFormatter, t_CHAR> Formatter;
379 Formatter d_formatter;
385 template <
class t_PARSE_CONTEXT>
387 t_PARSE_CONTEXT& context)
389 return d_formatter.parse(context);
397 template <
class t_FORMAT_CONTEXT>
398 typename t_FORMAT_CONTEXT::iterator
format(
400 t_FORMAT_CONTEXT& formatContext)
const
402 const FormatCache formatCache(value.localDate(), value.offset());
403 return d_formatter.format(formatCache, formatContext);
Definition bdlt_datetz.h:161
Definition bdlt_date.h:294
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_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#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