Code: Select all
void TestDateTime( char *ptr )
{
struct tm t, *timeinfo;
char buf[20];
iprintf( "Cmd: %s\r\n", ptr );
memcpy( buf, ptr + 3, 4 ); buf[4] = 0; t.tm_year = atoi( buf ) - 1900;
memcpy( buf, ptr + 8, 2 ); buf[2] = 0; t.tm_mon = atoi( buf ) - 1;
memcpy( buf, ptr + 11, 2 ); buf[2] = 0; t.tm_mday = atoi( buf );
memcpy( buf, ptr + 14, 2 ); buf[2] = 0; t.tm_hour = atoi( buf );
memcpy( buf, ptr + 17, 2 ); buf[2] = 0; t.tm_min = atoi( buf );
memcpy( buf, ptr + 20, 2 ); buf[2] = 0; t.tm_sec = atoi( buf );
if ( t.tm_sec < 0 || t.tm_sec > 59 ) t.tm_sec = 0;
iprintf("Yr: %d, Mo: %d, Dy: %d, Hr: %d, Mi: %d, Se: %d\r\n", t.tm_year,
t.tm_mon,
t.tm_mday,
t.tm_hour,
t.tm_min,
t.tm_sec );
time_t tnum = mktime( &t );
iprintf( "Before time_t = %lld\r\n", tnum );
set_time( tnum ); // Set System time.
tnum = 0;
time( &tnum );
iprintf( "After time_t = %lld\r\n", tnum );
timeinfo = localtime( &tnum );
iprintf( "Yr: %d, Mo: %d, Dy: %d, Hr: %d, Mi: %d, Se: %d\r\n", timeinfo->tm_year + 1900,
timeinfo->tm_mon + 1,
timeinfo->tm_mday,
timeinfo->tm_hour,
timeinfo->tm_min,
timeinfo->tm_sec );
}
Code: Select all
Cmd: _A%2050/08/20,08:58
Yr: 150, Mo: 7, Dy: 20, Hr: 8, Mi: 58, Se: 0
Before time_t = -1750339816
After time_t = -1750339816
Yr: 1914, Mo: 7, Dy: 15, Hr: 2, Mi: 29, Se: 44