Is there a good equivalent implementation of strptime()
available for Windows? Unfortunately, this POSIX function does not appear to be available.
Open Group description of strptime - summary: it converts a text string such as "MM-DD-YYYY HH:MM:SS"
into a tm struct
, the opposite of strftime()
.
An open-source version (BSD license) of strptime()
can be found here: http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/time/strptime.c?rev=HEAD
You'll need to add the following declaration to use it:
char *strptime(const char * __restrict, const char * __restrict, struct tm * __restrict);
If you don't want to port any code or condemn your project to boost, you can do this:
sscanf
struct tm
(subtract 1 from month and 1900 from year -- months are 0-11 and years start in 1900)mktime
to get a UTC epoch integerJust remember to set the isdst
member of the struct tm
to -1, or else you'll have daylight savings issues.