首页 >后端开发 >C++ >如何在 C 中将字符串时间转换为 time_t ?

如何在 C 中将字符串时间转换为 time_t ?

Barbara Streisand
Barbara Streisand原创
2024-11-21 10:10:13917浏览

How to Convert a String Time to time_t in C  ?

将字符串时间转换为 C 中的 time_t

在 C 中处理时间数据时,通常需要转换包含“hh:mm”中时间的字符串:ss" 格式为 time_t 类型。以下是实现此目的的方法:

#include <iostream>
#include <iomanip>
#include <sstream>
#include <ctime>

int main() {
  std::string time_details = "16:35:12";
  
  struct std::tm tm;
  std::istringstream ss(time_details);
  ss >> std::get_time(&tm, "%H:%M:%S"); // or use "%T" for this case
  std::time_t time_value = std::mktime(&tm);

  std::cout << "Converted time: " << std::put_time(std::gmtime(&time_value), "%H:%M:%S") << '\n';

  return 0;
}

此代码演示:

  • 转换为 time_t: 我们将字符串 time 转换为名为 time_value 的 time_t 变量使用字符串和 std::mktime 的流解析
  • 比较时间变量: 要比较两个 time_t 变量(例如 curr_time 和 user_time),可以使用以下方法:

    if (curr_time < user_time) {
    std::cout << "curr_time is earlier than user_time.\n";
    } else if (curr_time == user_time) {
    std::cout << "curr_time and user_time are the same.\n";
    } else {
    std::cout << "user_time is earlier than curr_time.\n";
    }

以上是如何在 C 中将字符串时间转换为 time_t ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn