Particle Core and Time Library

So, based on the documents description of the Time Library

I expect to see UTC time printed out when I pass the now() argument and local time when I pass the local() argument… but alas no:

now() is moved 5 hours and local() is off by 10!!

Is this a Core thing?


void setup(void)
void loop(void)
  uint32_t lastUpdateMillis = 0;
  if(millis() - lastUpdateMillis > 1000)
    lastUpdateMillis = millis();

when I comment out the; line, both now() and local() show UTC, as expected…

what am I misunderstanding? I didn’t have a Photon to test…

Have you seen this? and Time.local() only return a numer of seconds without any further information about when the counting started.
And Time.timeStr() just takes a number of seconds (without caring about the way how you got that number) and formats that according to the data stored in the Time object (especially the zone).

A over-simplified example:

int zone = -5;
int now() { return millis()/1000; }
int local() { return now() + zone*3600; }
String timeStr(int sec) {  return ("The localized time is " + String(sec + zone*3600) + " seconds after bootup"); } 

If you call that the way you did above, you’ll see similar behaviour (local() will show twice the zone offset).
And when you set zone = 0, you’ll get the same result for local() and now()

1 Like

I see, and I did look for the answer! I appreciate your help…

1 Like