Skip to content

Commit d317f56

Browse files
committed
Initial getTimeFromString
1 parent c5b0c28 commit d317f56

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/utility/time/TimeService.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
#include "TimeService.h"
2323

2424
#include <time.h>
25-
25+
#include <iomanip>
26+
#include <sstream>
2627
#include "NTPUtils.h"
2728

2829
/**************************************************************************************
@@ -104,6 +105,19 @@ unsigned long TimeService::getLocalTime()
104105
return utc + _timezone_offset;
105106
}
106107

108+
unsigned long TimeService::getTimeFromString(const String& timeString)
109+
{
110+
struct tm t;
111+
std::istringstream ss(timeString.c_str());
112+
ss >> std::get_time(&t, "%Y %b %d %H:%M:%S");
113+
114+
if(!ss) {
115+
return 0;
116+
} else {
117+
return mktime(&t);
118+
}
119+
}
120+
107121
/**************************************************************************************
108122
* PRIVATE MEMBER FUNCTIONS
109123
**************************************************************************************/

src/utility/time/TimeService.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
**************************************************************************************/
2424

2525
#include <Arduino_ConnectionHandler.h>
26+
#include <string>
2627

2728

2829
#ifdef ARDUINO_ARCH_SAMD
@@ -49,6 +50,7 @@ class TimeService
4950
unsigned long getTime();
5051
unsigned long getLocalTime();
5152
void setTimeZoneData(int offset, unsigned int valid_until);
53+
static unsigned long getTimeFromString(const String& timeString);
5254

5355
private:
5456

0 commit comments

Comments
 (0)