strptime() for Windows
strptime() 是一个 POSIX 函数,通常用于将文本字符串解析为 tm 结构。不幸的是,这个函数在 Windows 上不可用。
替代实现
如果您正在寻找适用于 Windows 的 strptime() 的良好等效实现,这里有一个解决方案使用 sscanf、struct tm 和 mktime 函数:
记得将 struct tm 的 isdst 成员设置为 -1以避免夏令时问题。
示例
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { char *date_str = "MM-DD-YYYY HH:MM:SS"; struct tm tm; sscanf(date_str, "%d-%d-%d %d:%d:%d", &tm.tm_mon, &tm.tm_mday, &tm.tm_year, &tm.tm_hour, &tm.tm_min, &tm.tm_sec); tm.tm_mon -= 1; // Adjust for zero-indexing tm.tm_year -= 1900; // Adjust for 1900 starting year time_t epoch = mktime(&tm); printf("Epoch: %ld\n", epoch); return 0; }
以上是如何在 Windows 上实现 strptime() 功能?的详细内容。更多信息请关注PHP中文网其他相关文章!