Skip to content

Commit 3cf18b2

Browse files
committed
getTimeFromString take format specifiers as input variable
1 parent d317f56 commit 3cf18b2

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/utility/time/TimeService.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,14 @@ unsigned long TimeService::getLocalTime()
105105
return utc + _timezone_offset;
106106
}
107107

108-
unsigned long TimeService::getTimeFromString(const String& timeString)
108+
unsigned long TimeService::getTimeFromString(const String& timeString, const String& timeStringFormat)
109109
{
110110
struct tm t;
111111
std::istringstream ss(timeString.c_str());
112-
ss >> std::get_time(&t, "%Y %b %d %H:%M:%S");
112+
ss >> std::get_time(&t, timeStringFormat.c_str());
113113

114114
if(!ss) {
115+
DEBUG_ERROR("ArduinoIoTCloudTCP::%s invalid timeString input", __FUNCTION__);
115116
return 0;
116117
} else {
117118
return mktime(&t);

src/utility/time/TimeService.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ class TimeService
5050
unsigned long getTime();
5151
unsigned long getLocalTime();
5252
void setTimeZoneData(int offset, unsigned int valid_until);
53-
static unsigned long getTimeFromString(const String& timeString);
53+
/* Helper function to convert a timeString into a UNIX timestamp. The format specifiers match the POSIX function strptime()*/
54+
static unsigned long getTimeFromString(const String& timeString, const String& timeStringFormat);
5455

5556
private:
5657

0 commit comments

Comments
 (0)