[locale.time.get.members]

# 28 Text processing library [[text]](./#text)

## 28.3 Localization library [[localization]](localization#locale.time.get.members)

### 28.3.4 Standard locale categories [[locale.categories]](locale.categories#locale.time.get.members)

#### 28.3.4.6 The time category [[category.time]](category.time#locale.time.get.members)

#### 28.3.4.6.2 Class template time_get [[locale.time.get]](locale.time.get#members)

#### 28.3.4.6.2.2 Members [locale.time.get.members]

[ð](#lib:time_get,date_order)

`dateorder date_order() const;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3619)

*Returns*: do_date_order()[.](#1.sentence-1)

[ð](#lib:time_get,get_time)

`iter_type get_time(iter_type s, iter_type end, ios_base& str,
                   ios_base::iostate& err, tm* t) const;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3631)

*Returns*: do_get_time(s, end, str, err, t)[.](#2.sentence-1)

[ð](#lib:time_get,get_date)

`iter_type get_date(iter_type s, iter_type end, ios_base& str,
                   ios_base::iostate& err, tm* t) const;
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3643)

*Returns*: do_get_date(s, end, str, err, t)[.](#3.sentence-1)

[ð](#lib:time_get,get_weekday)

`iter_type get_weekday(iter_type s, iter_type end, ios_base& str,
                      ios_base::iostate& err, tm* t) const;
iter_type get_monthname(iter_type s, iter_type end, ios_base& str,
                        ios_base::iostate& err, tm* t) const;
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3658)

*Returns*: do_get_weekday(s, end, str, err, t) ordo_get_monthname(s, end, str, err, t)[.](#4.sentence-1)

[ð](#lib:time_get,get_year)

`iter_type get_year(iter_type s, iter_type end, ios_base& str,
                   ios_base::iostate& err, tm* t) const;
`

[5](#5)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3672)

*Returns*: do_get_year(s, end, str, err, t)[.](#5.sentence-1)

[ð](#lib:get,time_get)

`iter_type get(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err,
              tm* t, char format, char modifier = 0) const;
`

[6](#6)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3684)

*Returns*: do_get(s, end, f, err, t, format, modifier)[.](#6.sentence-1)

[ð](#lib:get,time_get_)

`iter_type get(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err,
              tm* t, const char_type* fmt, const char_type* fmtend) const;
`

[7](#7)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3696)

*Preconditions*: [fmt, fmtend) is a valid range[.](#7.sentence-1)

[8](#8)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3700)

*Effects*: The function starts by evaluating err = ios_base​::​goodbit[.](#8.sentence-1)

It then enters a loop,
reading zero or more characters from s at each iteration[.](#8.sentence-2)

Unless otherwise specified below,
the loop terminates when the first of the following conditions holds:

- [(8.1)](#8.1)

  The expression fmt == fmtend evaluates to true[.](#8.1.sentence-1)

- [(8.2)](#8.2)

  The expression err == ios_base​::​goodbit evaluates to false[.](#8.2.sentence-1)

- [(8.3)](#8.3)

  The expression s == end evaluates to true,
in which case
the function evaluates err = ios_base​::​eofbit | ios_base​::​failbit[.](#8.3.sentence-1)

- [(8.4)](#8.4)

  The next element of fmt is equal to '%',
optionally followed by a modifier character,
followed by a conversion specifier character, format,
together forming a conversion specification
valid for the POSIX function strptime[.](#8.4.sentence-1)
  If the number of elements in the range [fmt, fmtend)
is not sufficient to unambiguously determine
whether the conversion specification is complete and valid,
the function evaluates err = ios_base​::​failbit[.](#8.4.sentence-2)
  Otherwise,
the function evaluates s = do_get(s, end, f, err, t, format, modifier),
where the value of modifier is '\0' when the optional modifier is absent from the conversion specification[.](#8.4.sentence-3)
  If err == ios_base​::​goodbit holds
after the evaluation of the expression,
the function increments fmt to point just past the end of the conversion specification and
continues looping[.](#8.4.sentence-4)

- [(8.5)](#8.5)

  The expression isspace(*fmt, f.getloc()) evaluates to true,
in which case the function first increments fmt untilfmt == fmtend || !isspace(*fmt, f.getloc()) evaluates to true,
then advances s until s == end || !isspace(*s, f.getloc()) is true, and
finally resumes looping[.](#8.5.sentence-1)

- [(8.6)](#8.6)

  The next character read from s matches the element pointed to by fmt in a case-insensitive comparison,
in which case the function evaluates ++fmt, ++s and continues looping[.](#8.6.sentence-1)
  Otherwise, the function evaluates err = ios_base​::​failbit[.](#8.6.sentence-2)

[9](#9)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3752)

[*Note [1](#note-1)*:

The function uses the ctype<charT> facet
installed in f's locale
to determine valid whitespace characters[.](#9.sentence-1)

It is unspecified
by what means the function performs case-insensitive comparison or
whether multi-character sequences are considered while doing so[.](#9.sentence-2)

â *end note*]

[10](#10)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L3762)

*Returns*: s[.](#10.sentence-1)
