iter_type get_epoch(iter_type i, iter_type e, std::ios_base& is, std::ios_base::iostate& err) const
 {
   if (std::has_facet<time_point_units<CharT> >(is.getloc()))
   {
     time_point_units<CharT> const &facet = std::use_facet<time_point_units<CharT> >(is.getloc());
     return get_epoch(facet, i, e, is, err);
   }
   else
   {
     time_point_units_default<CharT> facet;
     return get_epoch(facet, i, e, is, err);
   }
 }
Example #2
0
void get_gmtime( ztm *tm, sec_type when ) {
  if ( !when )
    get_epoch( &when );
#ifdef WIN32
  time_t time = static_cast<time_t>(when);
  ::gmtime_s( tm, &time );  
#else
  ::gmtime_r( &when, tm );
#endif /* WIN32 */
  tm->ZTM_GMTOFF = 0;
}
Example #3
0
void get_localtime( ztm *tm, sec_type when ) {
  if ( !when )
    get_epoch( &when );
#ifdef WIN32
  time_t time = static_cast<time_t>(when);
  ::localtime_s( tm, &time );
  tm->ZTM_GMTOFF = - _timezone;         // seconds west -> east
#else
  ::localtime_r( &when, tm );
#if !defined(ZORBA_HAVE_STRUCT_TM_TM_GMTOFF) && \
    !defined(ZORBA_HAVE_STRUCT_TM___TM_GMTOFF)
  tm->ZTM_GMTOFF = ::timegm( tm ) - when;
#endif
#endif /* WIN32 */
}