gpt4 book ai didi

c++ - 从 boost ptime 获取年份

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:24 26 4
gpt4 key购买 nike

我正在将现有程序转换为 C++,这里需要操作 Sybase 时间戳。这些时间戳包含日期和时间信息,据我所知最好由 boost::posix_time::ptime 变量处理。在代码的一些地方,我需要从变量中获取年份。

我的问题是:如何最有效地从 boost ptime 变量中提取?下面是一个示例程序,其中包含 行代码,以及一个额外的ostringstream 变量和一个boost::gregorian::date 变量。

根据 boost 文档:

Class ptime is dependent on gregorian::date for the interface to the date portion of a time point

但是 gregorian::date 似乎不是 ptime 的基类。不知何故,我在这里遗漏了一些东西。

有没有更简单的方法从 ptime 中提取年份?

示例:

#include <boost/date_time/local_time/local_time.hpp>
#include <iostream>

int main()
{
boost::posix_time::ptime t(boost::posix_time::second_clock::local_time());
boost::gregorian::date d = t.date();
std::ostringstream os; os << d.year();
std::cout << os.str() << std::endl;
return 0;
}

最佳答案

跳过 ostringstream。否则,您可能会受益于“使用命名空间...”

#include <boost/date_time/local_time/local_time.hpp>
#include <iostream>

int main()
{
using namespace boost::posix_time;
std::cout << second_clock::local_time().date().year() << std::endl;
return 0;
}

关于c++ - 从 boost ptime 获取年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1416009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com