Quick Links:

bal | bbl | bdl | bsl

Static Public Member Functions

baltzo::TimeZoneUtil Struct Reference

#include <baltzo_timezoneutil.h>

List of all members.

Static Public Member Functions

static int addInterval (LocalDatetime *result, const LocalDatetime &originalTime, const bsls::TimeInterval &interval)
static int convertUtcToLocalTime (LocalDatetime *result, const char *targetTimeZoneId, const bdlt::Datetime &utcTime)
static int convertUtcToLocalTime (bdlt::DatetimeTz *result, const char *targetTimeZoneId, const bdlt::Datetime &utcTime)
static int convertLocalToLocalTime (LocalDatetime *result, const char *targetTimeZoneId, const LocalDatetime &srcTime)
static int convertLocalToLocalTime (LocalDatetime *result, const char *targetTimeZoneId, const bdlt::DatetimeTz &srcTime)
static int convertLocalToLocalTime (bdlt::DatetimeTz *result, const char *targetTimeZoneId, const LocalDatetime &srcTime)
static int convertLocalToLocalTime (bdlt::DatetimeTz *result, const char *targetTimeZoneId, const bdlt::DatetimeTz &srcTime)
static int convertLocalToLocalTime (LocalDatetime *result, const char *targetTimeZoneId, const bdlt::Datetime &srcTime, const char *srcTimeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int convertLocalToLocalTime (bdlt::DatetimeTz *result, const char *targetTimeZoneId, const bdlt::Datetime &srcTime, const char *srcTimeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int initLocalTime (bdlt::DatetimeTz *result, const bdlt::Datetime &localTime, const char *timeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int initLocalTime (LocalDatetime *result, const bdlt::Datetime &localTime, const char *timeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int initLocalTime (bdlt::DatetimeTz *result, LocalTimeValidity::Enum *resultValidity, const bdlt::Datetime &localTime, const char *timeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int initLocalTime (LocalDatetime *result, LocalTimeValidity::Enum *resultValidity, const bdlt::Datetime &localTime, const char *timeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int convertLocalToUtc (bdlt::Datetime *result, const bdlt::Datetime &localTime, const char *timeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int convertLocalToUtc (LocalDatetime *result, const bdlt::Datetime &localTime, const char *timeZoneId, DstPolicy::Enum dstPolicy=DstPolicy::e_UNSPECIFIED)
static int loadLocalTimePeriod (LocalTimePeriod *result, const LocalDatetime &localTime)
static int loadLocalTimePeriod (LocalTimePeriod *result, const bdlt::DatetimeTz &localTime, const char *timeZoneId)
static int loadLocalTimePeriodForUtc (LocalTimePeriod *result, const char *timeZoneId, const bdlt::Datetime &utcTime)
static int now (bdlt::DatetimeTz *result, const char *timeZoneId)
static int now (LocalDatetime *result, const char *timeZoneId)
static int validateLocalTime (bool *result, const bdlt::DatetimeTz &localTime, const char *timeZoneId)
static int validateLocalTime (bool *result, const LocalDatetime &localTime)

Detailed Description

This struct provides a namespace for utility functions that convert time values to, from, and between, their corresponding local time representations in (possibly) different time zones.

These utility functions are:

For terminology see bsldoc_glossary.

See Component baltzo_timezoneutil


Member Function Documentation

static int baltzo::TimeZoneUtil::addInterval ( LocalDatetime result,
const LocalDatetime originalTime,
const bsls::TimeInterval interval 
) [static]

Load, into the specified result, the local time value that is the specified interval in the future of the specified originalTime (in the time zone originalTime.timeZoneId()). Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that targetTimeZoneId was not recognized, and a return value of ErrorCode::k_OUT_OF_RANGE indicates that the result of the operation would have been outside the range of values representable by the result type. The resulting local-time is equivalent to adding interval to originalTime.datetimeTz().utcDatetime() and converting the result into the local time of originalTime.timeZoneId().

static int baltzo::TimeZoneUtil::convertUtcToLocalTime ( LocalDatetime result,
const char *  targetTimeZoneId,
const bdlt::Datetime utcTime 
) [static]
static int baltzo::TimeZoneUtil::convertUtcToLocalTime ( bdlt::DatetimeTz result,
const char *  targetTimeZoneId,
const bdlt::Datetime utcTime 
) [static]

Load, into the specified result, the local date-time value (in the time zone indicated by the specified targetTimeZoneId) corresponding to the specified utcTime. The offset from UTC of the time zone is rounded down to minute precision. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that targetTimeZoneId was not recognized, and a return value of ErrorCode::k_OUT_OF_RANGE indicates that the result of the operation would have been outside the range of values representable by the result type.

static int baltzo::TimeZoneUtil::convertLocalToLocalTime ( LocalDatetime result,
const char *  targetTimeZoneId,
const LocalDatetime srcTime 
) [static]
static int baltzo::TimeZoneUtil::convertLocalToLocalTime ( LocalDatetime result,
const char *  targetTimeZoneId,
const bdlt::DatetimeTz srcTime 
) [static]
static int baltzo::TimeZoneUtil::convertLocalToLocalTime ( bdlt::DatetimeTz result,
const char *  targetTimeZoneId,
const LocalDatetime srcTime 
) [static]
static int baltzo::TimeZoneUtil::convertLocalToLocalTime ( bdlt::DatetimeTz result,
const char *  targetTimeZoneId,
const bdlt::DatetimeTz srcTime 
) [static]

Load, into the specified result, the local date-time value (in the time zone indicated by the specified targetTimeZoneId) corresponding to the local time indicated by the specified srcTime. The offset from UTC of both time zones is rounded down to minute precision. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that targetTimeZoneId was not recognized, and a return value of ErrorCode::k_OUT_OF_RANGE indicates that the result of the operation would have been outside the range of values representable by the result type.

static int baltzo::TimeZoneUtil::convertLocalToLocalTime ( LocalDatetime result,
const char *  targetTimeZoneId,
const bdlt::Datetime srcTime,
const char *  srcTimeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]
static int baltzo::TimeZoneUtil::convertLocalToLocalTime ( bdlt::DatetimeTz result,
const char *  targetTimeZoneId,
const bdlt::Datetime srcTime,
const char *  srcTimeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]

Load, into the specified result, the local date-time value (in the time zone indicated by the specified targetTimeZoneId) corresponding to the local time indicated by the specified srcTime (in the time zone indicated by the specified srcTimeZoneId). Optionally specify a dstPolicy indicating whether or not srcTime represents a daylight-saving time value. If dstPolicy is unspecified and srcTime is a unique and valid time in the source time zone, then perform the conversion using that uniquely described time; if dstPolicy is unspecified and srcTime is either ambiguous or invalid, then use the later of the two possible interpretations of srcTime. The offset from UTC of both time zones is rounded down to minute precision. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that either targetTimeZoneId or srcTimeZoneId was not recognized.

static int baltzo::TimeZoneUtil::initLocalTime ( bdlt::DatetimeTz result,
const bdlt::Datetime localTime,
const char *  timeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]
static int baltzo::TimeZoneUtil::initLocalTime ( LocalDatetime result,
const bdlt::Datetime localTime,
const char *  timeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]
static int baltzo::TimeZoneUtil::initLocalTime ( bdlt::DatetimeTz result,
LocalTimeValidity::Enum resultValidity,
const bdlt::Datetime localTime,
const char *  timeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]
static int baltzo::TimeZoneUtil::initLocalTime ( LocalDatetime result,
LocalTimeValidity::Enum resultValidity,
const bdlt::Datetime localTime,
const char *  timeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]

Load, into the specified result, the local date-time value -- including the local date, time, and resolved UTC offset -- indicated by the specified localTime in the time zone indicated by the specified timeZoneId. Optionally specify resultValidity in which to load the validity of localTime as being unique, ambiguous but valid, or invalid. Optionally specify a dstPolicy indicating whether or not localTime represents a daylight-saving time value. If dstPolicy is unspecified and localTime is a unique and valid time in the source time zone, then perform the conversion using that uniquely described time; if dstPolicy is unspecified and localTime is either ambiguous or invalid, then use the later of the two possible interpretations of localTime. The offset from UTC of the time zone is rounded down to minute precision. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId was not recognized.

static int baltzo::TimeZoneUtil::convertLocalToUtc ( bdlt::Datetime result,
const bdlt::Datetime localTime,
const char *  timeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]
static int baltzo::TimeZoneUtil::convertLocalToUtc ( LocalDatetime result,
const bdlt::Datetime localTime,
const char *  timeZoneId,
DstPolicy::Enum  dstPolicy = DstPolicy::e_UNSPECIFIED 
) [static]

Load, into the specified result, the UTC time value that corresponds to the specified localTime in the time zone indicated by the specified timeZoneId. Optionally specify a dstPolicy indicating whether or not localTime represents a daylight-saving time value. If dstPolicy is unspecified and localTime is a unique and valid time in the source time zone, then perform the conversion using that uniquely described time; if dstPolicy is unspecified and localTime is either ambiguous or invalid, then use the later of the two possible interpretations of localTime. The offset from UTC of the time zone is rounded down to minute precision. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId was not recognized.

static int baltzo::TimeZoneUtil::loadLocalTimePeriod ( LocalTimePeriod result,
const LocalDatetime localTime 
) [static]

Load, into the specified result, attributes characterizing the specified localTime (i.e., the offset from UTC, whether daylight-saving time is in effect and the description of the time zone), as well as the time interval over which those attributes apply. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that localTime.timeZoneId() was not recognized.

static int baltzo::TimeZoneUtil::loadLocalTimePeriod ( LocalTimePeriod result,
const bdlt::DatetimeTz localTime,
const char *  timeZoneId 
) [static]

Load, into the specified result, attributes characterizing the specified localTime in the time zone indicated by the specified timeZoneId (i.e., the offset from UTC, whether daylight-saving time is in effect and the description of the time zone), as well as the time interval over which those attributes apply. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId was not recognized.

static int baltzo::TimeZoneUtil::loadLocalTimePeriodForUtc ( LocalTimePeriod result,
const char *  timeZoneId,
const bdlt::Datetime utcTime 
) [static]

Load, into the specified result, attributes characterizing local time at the specified utcTime in the time zone indicated by the specified timeZoneId (i.e., the offset from UTC, whether daylight-saving time is in effect and the description of the time zone), as well as the time interval over which those attributes apply. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId was not recognized.

static int baltzo::TimeZoneUtil::now ( bdlt::DatetimeTz result,
const char *  timeZoneId 
) [static]
static int baltzo::TimeZoneUtil::now ( LocalDatetime result,
const char *  timeZoneId 
) [static]

Load, into the specified result, the current local time value in the time zone indicated by the specified timeZoneId. Return 0 on success, and a non-zero value with no effect otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneid is not recognized.

static int baltzo::TimeZoneUtil::validateLocalTime ( bool *  result,
const bdlt::DatetimeTz localTime,
const char *  timeZoneId 
) [static]

Load, into the specified result, true if the offset from UTC of the specified localTime (i.e., localTime.offset()) is consistent with the actual local time offset, as indicated by time zone data, at the UTC time localTime.utcDatetime() in the time zone indicated by the specified timeZoneId, and false otherwise. Return 0 on success, and a non-zero value with false loaded into result otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId is not recognized. Note that this operation verifies that the properties of the provided local time are consistent with the time zone data.

static int baltzo::TimeZoneUtil::validateLocalTime ( bool *  result,
const LocalDatetime localTime 
) [static]

Load, into the specified result, true if the time zone identifier of the specified localTime (i.e., localTime.timeZoneId()) is a valid identifier, and the offset from UTC of localTime (i.e., localTime.datetimeTz().offset()) is consistent with the actual local time offset, as indicated by time zone data, at the UTC time localTime.datetimeTz().utcDatetime() in the time zone indicated by localTime.timeZoneId(), and false otherwise. Return 0 on success, and a non-zero value with false loaded into result otherwise. A return value of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId is not recognized. Note that this operation verifies that the properties of the provided local time are consistent with the time zone data.


The documentation for this struct was generated from the following file: