【发布时间】:2017-02-02 02:01:09
【问题描述】:
我收到“24-9-2016 13:30”格式的日期结构。现在我想将时间值转换为特定的日期值,我正在计算并且需要添加或减去的小时数。
所以我不知道:
- 如何使用我拥有的日期值初始化 tm 结构?
- 如何在 tc struct 变量中添加或减去小时以获取所需的日期?
我的意图是
收到日期“2016 年 9 月 24 日 13:30”和 5 小时添加
所以最终日期:“24-9-2016 18:30”
//Temporarily init time to local
time_t tempTime
time(&tempTime);
struct tm *initStruct = localtime(&tempTime);//initialize it with local time
//now modify it to user defined date
initStruct ->tm_year = 2016;
initStruct->tm_mon = 9;
initStruct->tm_hour = 13;
.
.
.
//Not sure how can I subtract or add hours in this struct to get desired date value
这是关于格式化用户定义而不是重复。
【问题讨论】:
-
如果你想要一个工业级的解决方案,这里是:userguide.icu-project.org/datetime/timezone/examples - libicu 是 C 中在任意时区之间转换时间的标准方法。
-
不是真的,日期来自用户,需要执行额外的步骤,主要是如何在 struct tm 中添加或减去。
-
你需要的时区是系统时区,还是用户任意选择的时区?
-
详细计算已经到位,它给出了在用户给定日期应该添加/减去多少小时。我不确定如何在 struct tm 中应用这些值。