Time
isValid()
Since 0.6.1:
// SYNTAX
Time.isValid();
Used to check if current time is valid. This function will return true
if:
- Time has been set manually using
Time.setTime()
- Time has been successfully synchronized with the Particle Device Cloud. The device synchronizes time with the Particle Device Cloud during the handshake. The application may also manually synchronize time with Particle Device Cloud using
Particle.syncTime()
- Correct time has been maintained by RTC. See information on
Backup RAM (SRAM)
for cases when RTC retains the time. RTC is part of the backup domain and retains its counters under the same conditions as Backup RAM.
NOTE: When the device is running in AUTOMATIC
mode and threading is disabled this function will block if current time is not valid and there is an active connection to Particle Device Cloud. Once it synchronizes the time with Particle Device Cloud or the connection to Particle Device Cloud is lost, Time.isValid()
will return its current state. This function is also implicitly called by any Time
function that returns current time or date (e.g. Time.hour()
/Time.now()
/etc).
// Print true or false depending on whether current time is valid
Serial.print(Time.isValid());
SerialLogHandler logHandler;
void setup()
{
// Wait for time to be synchronized with Particle Device Cloud (requires active connection)
waitFor(Time.isValid, 60000);
}
void loop()
{
// Print current time
Log.info("current time: %s", Time.timeStr().c_str());
delay(1000);
}
For more information about real-time clocks on Particle devices, see Learn more about real-time clocks.