g Poco::Timezone;
using Poco::Timestamp;
int main(int argc, char** argv)
{
int utcOffset = Timezone::utcOffset();
int dst = Timezone::dst();
bool isDst = Timezone::isDst(Timestamp());
int tzd = Timezone::tzd();
std::string name = Timezone::name();
std::string stdName = Timezone::standardName();
std::string dstName = Timezone::dstName();
return 0;
}
6. Poco::DateTimeFormatter类
Poco::DateTimeFormatter用来定义当Timestamp, DateTime, LocalDateTime and Timespan转换为字符串时所需的日期和事件格式。Poco::DateTimeFormatter的作用和strftime()是类似的。Poco::DateTimeFormat内部定义了一些约定的格式。
1. ISO8601_FORMAT (2005-01-01T12:00:00+01:00)
2. RFC1123_FORMAT (Sat, 1 Jan 2005 12:00:00 +0100)
3. SORTABLE_FORMAT (2005-01-01 12:00:00)
4. For more information, please see the reference documentation.
成员函数:
所有的DateTimeFormatter函数都是静态的。
下面是一个使用的例子:
[cpp]
#include "Poco/Timestamp.h"
#include "Poco/Timespan.h"
#include "Poco/DateTimeFormatter.h"
#include "Poco/DateTimeFormat.h"
using Poco::DateTimeFormatter;
using Poco::DateTimeFormat;
int main(int argc, char** argv)
{
Poco::DateTime dt(2006, 10, 22, 15, 22, 34);
std::string s(DateTimeFormatter::format(dt, "%e %b %Y %H:%M"));
// "22 Oct 2006 15:22"
Poco::Timestamp now;
s = DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT);
// "2006-10-30 09:27:44"
Poco::Timespan span(5, 11, 33, 0, 0);
s = DateTimeFormatter::format(span, "%d days, %H hours, %M minutes");
// "5 days, 11 hours, 33 minutes"
return 0;
}
#include "Poco/Timestamp.h"
#include "Poco/Timespan.h"
#include "Poco/DateTimeFormatter.h"
#include "Poco/DateTimeFormat.h"
using Poco::DateTimeFormatter;
using Poco::DateTimeFormat;
int main(int argc, char** argv)
{
Poco::DateTime dt(2006, 10, 22, 15, 22, 34);
std::string s(DateTimeFormatter::format(dt, "%e %b %Y %H:%M"));
// "22 Oct 2006 15:22"
Poco::Timestamp now;
s = DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT);
// "2006-10-30 09:27:44"
Poco::Timespan span(5, 11, 33, 0, 0);
s = DateTimeFormatter::format(span, "%d days, %H hours, %M minutes");
// "5 days, 11 hours, 33 minutes"
return 0;
}
7. Poco::DateTimeParser类
Poco::DateTimeParser用来从字符串中解析时间和日期。下面是其一个例子:
[cpp]
#include "Poco/DateTimeParser.h"
#include "Poco/DateTime.h"
#include "Poco/DateTimeFormat.h"
#include "Poco/LocalDateTime.h"
#include "Poco/Timestamp.h"
using Poco::DateTimeParser;
using Poco::DateTimeFormat;
using Poco::DateTime;
int main(int argc, char** argv)
{
std::string s("Sat, 1 Jan 2005 12:00:00 GMT");
int tzd;
DateTime dt;
DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, s, dt, tzd);
Poco::Timestamp ts = dt.timestamp();
Poco::LocalDateTime ldt(tzd, dt);
bool ok = DateTimeParser::tryParse("2006-10-22", dt, tzd);
ok = DateTimeParser::tryParse("%e.%n.%Y", "22.10.2006", dt, tzd);
return 0;
}
#include "Poco/DateTimeParser.h"
#include "Poco/DateTime.h"
#include "Poco/DateTimeFormat.h"
#include "Poco/LocalDateTime.h"
#include "Poco/Timestamp.h"
using Poco::DateTimeParser;
using Poco::DateTimeFormat;
using Poco::DateTime;
int main(int argc, char** argv)
{
std::string s("Sat, 1 Jan 2005 12:00:00 GMT");
int tzd;
DateTime dt;
DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT