首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

POCO C++ 框架:日期時間處理

     編輯:關於C++

常用類與格式化

POCO 日期時間類內部實現簡潔,支援多種標準格式輸出。

代碼範例


#include <Poco/LocalDateTime.h>
#include <Poco/DateTime.h>
#include <Poco/DateTimeFormat.h>
#include <Poco/DateTimeFormatter.h>
#include <Poco/DateTimeParser.h>
#include <iostream>

using Poco::LocalDateTime;
using Poco::DateTime;
using Poco::DateTimeFormat;
using Poco::DateTimeFormatter;
using Poco::DateTimeParser;

int main() {
    LocalDateTime now;
    std::cout << "年:" << now.year() << std::endl;
    std::cout << "月:" << now.month() << std::endl;
    std::cout << "日:" << now.day() << std::endl;
    std::cout << "時:" << now.hour() << std::endl;
    std::cout << "分:" << now.minute() << std::endl;
    std::cout << "秒:" << now.second() << std::endl;
    std::cout << "本周第 " << now.dayOfWeek() << " 天" << std::endl;
    std::cout << "本年第 " << now.dayOfYear() << " 天" << std::endl;
    std::cout << "儒略日:" << now.julianDay() << std::endl;

    std::string iso = DateTimeFormatter::format(now, DateTimeFormat::ISO8601_FORMAT);
    std::cout << "ISO8601:" << iso << std::endl;
    std::string http = DateTimeFormatter::format(now, DateTimeFormat::HTTP_FORMAT);
    std::cout << "HTTP:" << http << std::endl;
    std::string asctime = DateTimeFormatter::format(now, DateTimeFormat::ASCTIME_FORMAT);
    std::cout << "ANSI C:" << asctime << std::endl;
    std::string sortable = DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT);
    std::cout << "可排序:" << sortable << std::endl;

    DateTime dt; int tzd;
    DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, iso, dt, tzd);
    dt.makeUTC(tzd);
    LocalDateTime ldt(tzd, dt);
    return 0;
}

關鍵點

  • LocalDateTime:本地時間,含時區偏移。
  • DateTimeFormatter::format:多種預設格式(ISO8601、HTTP、ANSI C、可排序)。
  • DateTimeParser::parse:字串解析為 DateTime,返回時區偏移。
  • 歷史上儒略日、ISO8601 等標準演變有趣,可深入閱讀文檔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved