ESP32 strftime %d %-d %e %-e leading space/zero suppression

Running an ESP32 with Arduino 1.8. Trying in vain to suppress the leading zero (or space) from the day of the month with strftime. Tried the following combinations:

"%A %B %d, %Y"
Tuesday February 08, 2022

"%A %B %-d, %Y"
Tuesday February 08, 2022

"%A %B %#d, %Y"
Tuesday February 08, 2022

"%A %B %e, %Y"
Tuesday February  8, 2022

"%A %B %-e, %Y"
Tuesday February  8, 2022

"%A %B %#e, %Y"
Tuesday February  8, 2022

Without building the string in several components, is there a format code I am missing?

Thanks,

Allan.

Not tried it but from an old program I wrote I had included the below as a hint. Looks like you use the # character to suppress leading zeros.

/*
  %a Abbreviated weekday name 
  %A Full weekday name 
  %b Abbreviated month name 
  %B Full month name 
  %c Date and time representation for your locale 
  %d Day of month as a decimal number (01-31) 
  %H Hour in 24-hour format (00-23) 
  %I Hour in 12-hour format (01-12) 
  %j Day of year as decimal number (001-366) 
  %m Month as decimal number (01-12) 
  %M Minute as decimal number (00-59) 
  %p Current locale’s A.M./P.M. indicator for 12-hour clock 
  %S Second as decimal number (00-59) 
  %U Week of year as decimal number,  Sunday as first day of week (00-51) 
  %w Weekday as decimal number (0-6; Sunday is 0) 
  %W Week of year as decimal number, Monday as first day of week (00-51) 
  %x Date representation for current locale 
  %X Time representation for current locale 
  %y Year without century, as decimal number (00-99) 
  %Y Year with century, as decimal number 
  %z %Z Time-zone name or abbreviation, (no characters if time zone is unknown) 
  %% Percent sign 
  You can include text literals (such as spaces and colons) to make a neater display or for padding between adjoining columns. 
  You can suppress the display of leading zeroes  by using the "#" character  (%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y) 
*/

  struct tm timeinfo;

  Serial.print(&timeinfo, " %d %B %Y %H:%M:%S ");

[quote="Riva, post:2, topic:956869"]
Looks like you use the # character to suppress leading zeros.[/quote]

I had tried that, but it wasn't doing anything. I am guessing that bit was never ported to the ESP32. I ended up rolling my own...

  strftime(dateBuf,sizeof(dateBuf),"%A %B ",timeInfo);
  itoa(timeInfo->tm_mday,dateBufT,10);
  strcat(dateBuf,dateBufT);
  strftime(dateBufT,sizeof(dateBufT),", %Y",timeInfo);
  strcat(dateBuf,dateBufT);

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.