tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

time_zone_fixed.h (2091B)


      1 // Copyright 2016 Google Inc. All Rights Reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //   https://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 //   Unless required by applicable law or agreed to in writing, software
     10 //   distributed under the License is distributed on an "AS IS" BASIS,
     11 //   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 //   See the License for the specific language governing permissions and
     13 //   limitations under the License.
     14 
     15 #ifndef ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_FIXED_H_
     16 #define ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_FIXED_H_
     17 
     18 #include <string>
     19 
     20 #include "absl/base/config.h"
     21 #include "absl/time/internal/cctz/include/cctz/time_zone.h"
     22 
     23 namespace absl {
     24 ABSL_NAMESPACE_BEGIN
     25 namespace time_internal {
     26 namespace cctz {
     27 
     28 // Helper functions for dealing with the names and abbreviations
     29 // of time zones that are a fixed offset (seconds east) from UTC.
     30 // FixedOffsetFromName() extracts the offset from a valid fixed-offset
     31 // name, while FixedOffsetToName() and FixedOffsetToAbbr() generate
     32 // the canonical zone name and abbreviation respectively for the given
     33 // offset.
     34 //
     35 // A fixed-offset name looks like "Fixed/UTC<+-><hours>:<mins>:<secs>".
     36 // Its abbreviation is of the form "UTC(<+->H?H(MM(SS)?)?)?" where the
     37 // optional pieces are omitted when their values are zero.  (Note that
     38 // the sign is the opposite of that used in a POSIX TZ specification.)
     39 //
     40 // Note: FixedOffsetFromName() fails on syntax errors or when the parsed
     41 // offset exceeds 24 hours.  FixedOffsetToName() and FixedOffsetToAbbr()
     42 // both produce "UTC" when the argument offset exceeds 24 hours.
     43 bool FixedOffsetFromName(const std::string& name, seconds* offset);
     44 std::string FixedOffsetToName(const seconds& offset);
     45 std::string FixedOffsetToAbbr(const seconds& offset);
     46 
     47 }  // namespace cctz
     48 }  // namespace time_internal
     49 ABSL_NAMESPACE_END
     50 }  // namespace absl
     51 
     52 #endif  // ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_FIXED_H_