最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++之std::get_time和std::put_time

 更新時間:2024年10月04日 10:35:36   作者:桐葉巖  
std::get_time和std::put_time是C++中用于日期和時間的格式化和解析的函數(shù),它們都包含在<iomanip>頭文件中,std::get_time用于從輸入流中解析日期時間字符串,而std::put_time則用于將std::tm結(jié)構(gòu)格式化為字符串

std::get_time和std::put_time

在 C++ 中,std::get_time 和 std::put_time 是處理日期和時間格式化的兩個實用函數(shù)。它們提供了一種簡單的方法來解析和格式化日期時間字符串。它們都屬于<iomanip>頭文件。

它們是 std::istream 和 std::ostream 的操作符,因此,它們沒有傳統(tǒng)意義上的構(gòu)造函數(shù)。它們用于格式化和解析日期時間,但本身并不涉及直接創(chuàng)建對象。

std::get_time

std::get_time 是一個流操作符,用于從流中解析日期時間字符串。

它實際上是一個函數(shù)模板,定義在 頭文件中。

template<typename CharT, typename Traits>
std::basic_istream<CharT, Traits>& get_time(std::basic_istream<CharT, Traits>& is, std::tm* t, const CharT* fmt);
  • is: 輸入流(例如 std::istringstream)。
  • t: std::tm 結(jié)構(gòu)的指針,用于存儲解析后的日期時間。
  • fmt: 日期時間格式字符串,用于指定如何解析輸入字符串。

用法

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

int main() {
    std::string datetime_str = "2024-08-14 15:30:00";
    std::tm tm = {};
    std::istringstream ss(datetime_str);

    // 解析日期和時間
    ss >> std::get_time(&tm, "%Y-%m-%d %H:%M:%S");

    if (ss.fail()) {
        std::cerr << "Error parsing date and time" << std::endl;
        return 1;
    }

    // 輸出解析結(jié)果
    std::cout << "Year: " << tm.tm_year + 1900 << std::endl;
    std::cout << "Month: " << tm.tm_mon + 1 << std::endl;
    std::cout << "Day: " << tm.tm_mday << std::endl;
    std::cout << "Hour: " << tm.tm_hour << std::endl;
    std::cout << "Minute: " << tm.tm_min << std::endl;
    std::cout << "Second: " << tm.tm_sec << std::endl;

    return 0;
}
  • std::get_time(&tm, “%Y-%m-%d %H:%M:%S”):解析 datetime_str 字符串,并將結(jié)果填充到 std::tm 結(jié)構(gòu)中。格式字符串 “%Y-%m-%d %H:%M:%S” 說明了輸入字符串的日期時間格式。
  • tm.tm_year:存儲的是從1900年開始的年份,所以需要加上1900才能得到實際年份。
  • tm.tm_mon:存儲的是從0開始的月份,所以需要加上1才能得到實際月份。

std::put_time

std::put_time 是另一個流操作符,用于將 std::tm 結(jié)構(gòu)格式化為字符串。

它也是一個函數(shù)模板,定義在 頭文件中。

template<typename CharT, typename Traits>
std::basic_ostream<CharT, Traits>& put_time(std::basic_ostream<CharT, Traits>& os, const std::tm* t, const CharT* fmt);
  • os: 輸出流(例如 std::ostringstream)。
  • t: 指向 std::tm 結(jié)構(gòu)的指針,用于格式化日期時間。
  • fmt: 日期時間格式字符串,用于指定輸出的格式。

用法

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

int main() {
    std::tm tm = {};
    tm.tm_year = 2024 - 1900; // 年份從1900年開始
    tm.tm_mon = 8 - 1; // 月份從0開始
    tm.tm_mday = 14;
    tm.tm_hour = 15;
    tm.tm_min = 30;
    tm.tm_sec = 0;

    std::ostringstream ss;

    ss << std::put_time(&tm, "%Y-%m-%d %H:%M:%S");

    std::cout << "Formatted date and time: " << ss.str() << std::endl;

    return 0;
}
  • std::put_time(&tm, “%Y-%m-%d %H:%M:%S”):將 std::tm 結(jié)構(gòu)中的日期時間信息格式化為字符串,格式為 “%Y-%m-%d %H:%M:%S”。
  • ss.str():獲取格式化后的日期時間字符串。

這兩個操作符分別用于日期時間的解析和格式化,但它們并不涉及直接創(chuàng)建對象的構(gòu)造函數(shù)。它們是 C++ 標準庫提供的流操作功能,通過流操作符來處理日期和時間。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用rapidjson實現(xiàn)解析嵌套的json的方法示例

    利用rapidjson實現(xiàn)解析嵌套的json的方法示例

    今天小編就為大家分享一篇關(guān)于利用rapidjson實現(xiàn)解析嵌套的json的方法示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • vs2019創(chuàng)建WebService服務(wù)的實現(xiàn)

    vs2019創(chuàng)建WebService服務(wù)的實現(xiàn)

    這篇文章主要介紹了vs2019創(chuàng)建WebService服務(wù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • C++中指針的數(shù)據(jù)類型和運算相關(guān)知識小結(jié)

    C++中指針的數(shù)據(jù)類型和運算相關(guān)知識小結(jié)

    這篇文章主要介紹了C++中指針的數(shù)據(jù)類型和運算相關(guān)知識小結(jié),是C++入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • vc中SendMessage自定義消息函數(shù)用法實例

    vc中SendMessage自定義消息函數(shù)用法實例

    這篇文章主要介紹了vc中SendMessage自定義消息函數(shù)用法,以實例實行詳細講述了SendMessage的定義、原理與用法,具有一定的實用價值,需要的朋友可以參考下
    2014-10-10
  • C語言實現(xiàn)三子棋(井字棋)算法

    C語言實現(xiàn)三子棋(井字棋)算法

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)三子棋(井字棋)算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C/C++中常用加密與解密算法的實現(xiàn)

    C/C++中常用加密與解密算法的實現(xiàn)

    這篇文章主要為大家詳細介紹了一些在C++中常用的加密與解密算法,這其中包括Xor異或、BASE64、AES、MD5、SHA256、RSA等,感興趣的小伙伴可以學習一下
    2023-11-11
  • C語言利用system調(diào)用系統(tǒng)命令行詳情

    C語言利用system調(diào)用系統(tǒng)命令行詳情

    這篇文章主要介紹了C語言利用system調(diào)用系統(tǒng)命令行詳情,system就是調(diào)用系統(tǒng)命令行,輸入為字符串,然后把這個字符串輸出給命令行,讓命令行執(zhí)行。下文的具體內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • C語言中進程間通訊的方式詳解

    C語言中進程間通訊的方式詳解

    這篇文章主要為大家詳細介紹了C語言中幾種進程間通訊的方式,文中的示例代碼講解詳細,?對我們學習或工作有一定的借鑒價值,需要的可以參考一下
    2022-08-08
  • 適合初學者的C語言常量類型的講解

    適合初學者的C語言常量類型的講解

    常量是固定值,在程序執(zhí)行期間不會改變。這些固定的值,又叫做字面量。常量可以是任何的基本數(shù)據(jù)類型,比如整數(shù)常量、浮點常量、字符常量,或字符串字面值,也有枚舉常量。常量就像是常規(guī)的變量,只不過常量的值在定義后不能進行修改
    2022-04-04
  • iOS鎖屏音頻播放控制及音頻信息設(shè)置

    iOS鎖屏音頻播放控制及音頻信息設(shè)置

    這篇文章主要為大家詳細介紹了iOS鎖屏音頻播放控制及音頻信息設(shè)置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評論

墨江| 孟津县| 建始县| 辽中县| 杨浦区| 东明县| 安陆市| 孙吴县| 景宁| 织金县| 南岸区| 高阳县| 遂川县| 陆良县| 林州市| 赣榆县| 连江县| 伊宁市| 井冈山市| 黔西县| 韶山市| 青州市| 商丘市| 昌乐县| 鄂托克旗| 丹阳市| 开封县| 滦南县| 日喀则市| 乌鲁木齐县| 伊川县| 英山县| 越西县| 文昌市| 临泉县| 铜川市| 齐河县| 自贡市| 象山县| 新乐市| 康平县|