TZ Namespace Reference

Classes

struct  Rule
 Describe rules for when daylight/summer time begins, and when standard time begins. More...
 
class  Timezone
 Class to support local/UTC time conversions using rules. More...
 
struct  Transition
 
struct  Info
 

Typedefs

using ZoneList = FSTR::Vector< Info >
 
using AreaMap = FSTR::Map< FSTR::String, ZoneList >
 

Enumerations

enum  week_t {
  First , Second , Third , Fourth ,
  Last
}
 Week number for Rule More...
 
enum  dow_t {
  Sun = 0 , Mon , Tue , Wed ,
  Thu , Fri , Sat
}
 Day of week. Same as DateTime dtDays_t. More...
 
enum  month_t {
  Jan = 0 , Feb , Mar , Apr ,
  May , Jun , Jul , Aug ,
  Sep , Oct , Nov , Dec
}
 Month by name. Same as DateTime dtMonth_t. More...
 

Functions

const InfofindZone (const String &name)
 Find a zone given its full name. More...
 

Variables

static constexpr time_t minTime = std::max(-5364662400LL, (long long)std::numeric_limits<time_t>::min() + 1)
 Earliest timestamp we might wish to use. More...
 
static constexpr time_t maxTime = std::min(253402300799LL, (long long)std::numeric_limits<time_t>::max() - 1)
 Largest future timestamp value we could reasonably want. More...
 
static constexpr time_t invalidTime = maxTime + 1
 Value outside normal range used to indicate abnormal or uninitialised time values. More...
 
static constexpr const Rule PROGMEM rule_none {}
 

Typedef Documentation

◆ AreaMap

◆ ZoneList

using TZ::ZoneList = typedef FSTR::Vector<Info>

Enumeration Type Documentation

◆ dow_t

enum TZ::dow_t

Day of week. Same as DateTime dtDays_t.

Enumerator
Sun 
Mon 
Tue 
Wed 
Thu 
Fri 
Sat 

◆ month_t

Month by name. Same as DateTime dtMonth_t.

Enumerator
Jan 
Feb 
Mar 
Apr 
May 
Jun 
Jul 
Aug 
Sep 
Oct 
Nov 
Dec 

◆ week_t

enum TZ::week_t

Week number for Rule

Enumerator
First 
Second 
Third 
Fourth 
Last 

Function Documentation

◆ findZone()

const Info* TZ::findZone ( const String name)

Find a zone given its full name.

Parameters
nameFull name of zone
Return values
Info*Zone information, if found Comparison is performed on full name without case-sensitivity and with all punctuation removed. Thus: "europe-london" matches "Europe/London" "africa/porto_novo" matches "Africa/Porto-Novo" "america port au prince" matches "America/Port-au-Prince"

This makes things a bit easier with little risk of false-positives.

Variable Documentation

◆ invalidTime

constexpr time_t TZ::invalidTime = maxTime + 1
staticconstexpr

Value outside normal range used to indicate abnormal or uninitialised time values.

◆ maxTime

constexpr time_t TZ::maxTime = std::min(253402300799LL, (long long)std::numeric_limits<time_t>::max() - 1)
staticconstexpr

Largest future timestamp value we could reasonably want.

Note
64-bit 253402300799 "9999-12-31 23:59:59" 32-bit 2147483646 "2038-01-19 03:14:06"
Todo:
Simplify this expression once 32-bit time_t has been eradicated.

◆ minTime

constexpr time_t TZ::minTime = std::max(-5364662400LL, (long long)std::numeric_limits<time_t>::min() + 1)
staticconstexpr

Earliest timestamp we might wish to use.

Note
64-bit -5364662400 "1800-01-01 00:00:00" 32-bit -2147483647 "1901-12-31 20:45:53"
Todo:
Simplify this expression once 32-bit time_t has been eradicated.

◆ rule_none

constexpr const Rule PROGMEM TZ::rule_none {}
staticconstexpr