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,返回時區偏移。