c++ - 如何在 C++ 中使用 stringstream 从字符串中提取时间

标签 c++ time

如何使用 stringstream 从类似于此的输入中提取小时、分钟、秒和 AM/PM 字符串?

输入:

07:05:45PM

最佳答案

大致是这样的:

unsigned int hour;
unsigned int minute;
unsigned int second;
char colon1;
char colon2;
string AMPM;

if (stream >> hour >> colon1 >>minute >> colon2 >> second >> AMPM)
{
    if (colon1 == ':' && colon2 == ':')
    {
        if ((hour < 12) && (minute < 60) && (second < 60))
        {
            if (AMPM == "AM")
            {
                // do nothing
            }
            else if (AMPM == "PM")
            {
               hour += 12;

            }
            else
            {
                //freak out
            }
        }
        else
        {
            //freak out
        }
    }
    else
    {
        //freak out
    }
}
else
{
    //freak out
}

关于c++ - 如何在 C++ 中使用 stringstream 从字符串中提取时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422823/

相关文章:

c++ - 为什么 KCacheGrind 不显示我的函数名称?

c++ - 错过了虚函数调用

Python 每 5 分钟执行一次操作

sql - 在 H2 数据库中插入当前日期和时间

time - 'T' 和 'Z' 在日期中的含义

c++ - 对大文件执行 FFT 的最快方法是什么?

c++ - 遇到宽字符后文件被截断

c# - 将 c++ std::string 转换为 c# 字节数组

在 Linux 上确定 clock_gettime 分辨率的正确方法

php - 当减去年份时,它返回不同的结果