この機能はBoost.DateTimeには組み込まれていませんが、それはあなた自身の書式を記述するために非常に簡単です:ここで
だけでアイデアを得るために、それを間違った方法を行うためのいくつかのコードです機能、例えば:
template<typename CharT, typename TraitsT>
std::basic_ostream<CharT, TraitsT>& print_date(
std::basic_ostream<CharT, TraitsT>& os,
boost::posix_time::ptime const& pt)
{
boost::gregorian::date const& d = pt.date();
return os
<< d.month().as_number() << '/'
<< d.day().as_number() << '/'
<< d.year();
}
template<typename CharT, typename TraitsT>
std::basic_ostream<CharT, TraitsT>& print_date_time(
std::basic_ostream<CharT, TraitsT>& os,
boost::posix_time::ptime const& pt)
{
boost::gregorian::date const& d = pt.date();
boost::posix_time::time_duration const& t = pt.time_of_day();
CharT const orig_fill(os.fill('0'));
os
<< d.month().as_number() << '/'
<< d.day().as_number() << '/'
<< d.year() << ' '
<< (t.hours() && t.hours() != 12 ? t.hours() % 12 : 12) << ':'
<< std::setw(2) << t.minutes() << ':'
<< std::setw(2) << t.seconds() << ' '
<< (t.hours()/12 ? 'P' : 'A') << 'M';
os.fill(orig_fill);
return os;
}
ありがとうございました。それをする必要はありませんでしたが、それは動作します。 – Eric