将字符串格式化为类似日期的格式

时间:2014-03-17 19:04:39

标签: c++ format

我有一个以字符串作为参数的类。我需要以MM/DD/YYYY的格式打印出日期。输入可以是例如:03242014或3242014.

我认为使用SubString()功能会起作用,但我不确定如何。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

有点晚了,但使用substr解决问题的方法可能如下:

//formatDate(date)
//IN: str or int of form: 01234567 or 1234567
//OUT: str of form: 23/01/4567
string formatDate(const string& date)
{
    string ret = date;
    if(date.length() == 8)
    {
        ret = date.substr(0,2) + '/' +
                date.substr(2,2) + '/' +
                date.substr(4);
    }
    else if(date.length() == 7)
    {
        ret = '0' + date.substr(0,1) + '/' +
                date.substr(1,2) + '/' +
                date.substr(3);
    }
    return ret;
};
string formatDate(int i) 
{
    return formatDate(to_string(i));
}

请注意以下内容:

cout << formatDate("03242014") <<'\n'
     << formatDate("3242014") <<'\n'
     << formatDate(3242014) <<'\n';

,同时:

cout << formatDate(03242014) <<'\n'

不会03242014表示octal number