[time.zone.zonedtime.nonmembers]

# 30 Time library [[time]](./#time)

## 30.11 Time zones [[time.zone]](time.zone#zonedtime.nonmembers)

### 30.11.7 Class template zoned_time [[time.zone.zonedtime]](time.zone.zonedtime#nonmembers)

#### 30.11.7.4 Non-member functions [time.zone.zonedtime.nonmembers]

[ð](#lib:operator==,zoned_time)

`template<class Duration1, class Duration2, class TimeZonePtr>
  bool operator==(const zoned_time<Duration1, TimeZonePtr>& x,
                  const zoned_time<Duration2, TimeZonePtr>& y);
`

[1](#1)

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

*Returns*: x.zone_ == y.zone_ && x.tp_ == y.tp_[.](#1.sentence-1)

[ð](#lib:operator%3c%3c,zoned_time)

`template<class charT, class traits, class Duration, class TimeZonePtr>
  basic_ostream<charT, traits>&
    operator<<(basic_ostream<charT, traits>& os,
               const zoned_time<Duration, TimeZonePtr>& t);
`

[2](#2)

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

*Effects*: Equivalent to:return os << format(os.getloc(), *STATICALLY-WIDEN*<charT>("{:L%F %T %Z}"), t);
