LocalTimeRK
Public Member Functions
LocalTimeValue Class Reference

Container for a local time value with accessors similar to the Wiring Time class. More...

#include <LocalTimeRK.h>

Inheritance diagram for LocalTimeValue:

Public Member Functions

int hour () const
 Returns the hour (0 - 23)
 
int hourFormat12 () const
 Returns the hour (1 - 12) used in AM/PM mode.
 
uint8_t isAM () const
 Returns true if the time is in the AM (before noon)
 
uint8_t isPM () const
 Returns true if the time is in the PM (>= 12:00:00 in 24-hour clock).
 
int minute () const
 Returns the minute 0 - 59.
 
int second () const
 Returns the second 0 - 59.
 
int day () const
 Returns the day of the month 1 - 31 (or less in some months)
 
int weekday () const
 Returns the day of week 1 - 7 (Sunday = 1, Monday = 2, ..., Saturday = 7) More...
 
int month () const
 Returns the month of the year 1 - 12 (1 = January, 2 = February, ...) More...
 
int year () const
 Returns the 4-digit year.
 
LocalTimeHMS hms () const
 Gets the local time as a LocalTimeHMS object.
 
void setHMS (LocalTimeHMS hms)
 Sets the local time from a LocalTimeHMS object.
 
LocalTimeYMD ymd () const
 Get the date portion of this object as a LocalTimeYMD. More...
 
time_t toUTC (LocalTimePosixTimezone config) const
 Converts the specified local time into a UTC time. More...
 
void fromString (const char *str)
 Converts time from ISO-8601 format, ignoring the timezone. More...
 
int ordinal () const
 Returns which week of this day it is. More...
 

Detailed Description

Container for a local time value with accessors similar to the Wiring Time class.

Really just a C++ wrapper around struct tm with adjustments for weekday and month being 0-based in struct tm and 1-based in Wiring. Also tm_year being weird in struct tm.

If you want to format a time string, use the methods in LocalTimeConvert. The reason is that the LocalTimeValue is only the value container and doesn't know the current timezone offset for the local time.

Member Function Documentation

◆ fromString()

void LocalTimeValue::fromString ( const char *  str)

Converts time from ISO-8601 format, ignoring the timezone.

Parameters
strThe string to convert

The string should be of the form:

YYYY-MM-DDTHH:MM:SS

The T can be any single character, such as a space. For example:

2021-04-01 10:00:00

Any characters after the seconds are ignored.

◆ month()

int LocalTimeValue::month ( ) const
inline

Returns the month of the year 1 - 12 (1 = January, 2 = February, ...)

Note: the underlying struct tm tm_mon is 0 - 11, but this returns the more common 1 - 12.

◆ ordinal()

int LocalTimeValue::ordinal ( ) const

Returns which week of this day it is.

For example, if this day is a Friday and it's the first Friday of the month, then 1 is returned. If it's the second Friday, then 2 is returned.

(This is different than the week number of the month, which depends on which day you begin the week on.)

◆ toUTC()

time_t LocalTimeValue::toUTC ( LocalTimePosixTimezone  config) const

Converts the specified local time into a UTC time.

There are some caveats to this that occur on when the time change occurs. On spring forward, there is an hour that doesn't technically map to a UTC time. For example, in the United States, 2:00 AM to 3:00 AM local time doesn't exist because at 2:00 AM local time, the local time springs forward to 3:00 AM.

When falling back, the hour from 1:00 AM to 2:00 AM is not unique, because it happens twice, once in DST before falling back, and a second time after falling back. The toUTC() function returns the second one that occurs in standard time.

◆ weekday()

int LocalTimeValue::weekday ( ) const
inline

Returns the day of week 1 - 7 (Sunday = 1, Monday = 2, ..., Saturday = 7)

Note: the underlying struct tm tm_wday is 0 - 6 (Sunday = 0, Monday = 1, ..., Saturday = 6) but Wiring uses 1 - 7 instead of 0 - 6.

◆ ymd()

LocalTimeYMD LocalTimeValue::ymd ( ) const

Get the date portion of this object as a LocalTimeYMD.

Returns
LocalTimeYMD

The documentation for this class was generated from the following files: