填充结构 tm

Populate struct tm

标准 C/C++ 库中是否有可以填充 struct tm 的内容?

更具体地说明我的问题:我希望能够提供日期并从中填充 struct tm(例如:1-1-2000 00:00:01。)对于大多数我可以直接插入数据的字段,但我不知道 tm_wdaytm_isdst.

我真的在寻找一种方法来填充这两个 而无需 编写一些复杂的星期几状态机。

你想要mktime:

The original values of the tm_wday and tm_yday components of the structure are ignored, and the original values of the other components are not restricted to the ranges indicated above.

mktime 可以用作某种规范化函数,确保所有字段在之后保持一致。


mktime 听起来是您最好的选择。您传递给它的 struct tm 不需要具有指定范围内的值;它规范化字段,包括重新计算 tm_wdaytm_yday。要让它尝试确定 DST 是否生效,请在调用 mktime.

之前将 tm_isdst 成员设置为负数

如果要从字符串转换,可以使用 get_time 操纵器将信息提取到 tm