Parse common UTC timestamps in process
This commit is contained in:
@@ -462,6 +462,24 @@ u64 time_parse(String time_String)
|
||||
time_String = trim(time_String);
|
||||
if(time_String == "")
|
||||
return(0);
|
||||
if(time_String.size() == 19 || (time_String.size() == 20 && time_String[19] == 'Z') || (time_String.size() == 23 && time_String.substr(19) == " UTC"))
|
||||
{
|
||||
struct tm parsed = {};
|
||||
String calendar = time_String.substr(0, 19);
|
||||
const char* end = strptime(calendar.c_str(), calendar[10] == 'T' ? "%Y-%m-%dT%H:%M:%S" : "%Y-%m-%d %H:%M:%S", &parsed);
|
||||
if(end && *end == 0)
|
||||
{
|
||||
char normalized[20];
|
||||
strftime(normalized, sizeof(normalized), "%Y-%m-%d %H:%M:%S", &parsed);
|
||||
calendar[10] = ' ';
|
||||
if(calendar == normalized)
|
||||
{
|
||||
time_t timestamp = timegm(&parsed);
|
||||
if(timestamp >= 0)
|
||||
return((u64)timestamp);
|
||||
}
|
||||
}
|
||||
}
|
||||
return(int_val(trim(shell_exec("date -u -d " + shell_escape(time_String) + " +'%s'"))));
|
||||
}
|
||||
u64 socket_connect(String host, u16 port)
|
||||
|
||||
Reference in New Issue
Block a user