Полное название месяца (например, May (май)) | |
c | Полные дата и время |
d | День месяца (01-31) |
H | Час (00-23) |
I | Час (01-12) |
j | День года (001-366) |
m | Месяц (01-12) |
M | Минуты (00-59) |
p | Признак AM/PM |
S | Секунды, включая до двух секунд координации |
U | Номер недели (00-53), причем неделя 1 начинается в первое воскресенье |
w | День недели (0-6), где 0 — это воскресенье |
W | Номер недели (00-53), причем неделя 1 начинается в первый понедельник |
x | Дата в формате MM/DD/YY |
X | Время в формате HH/MM/SS и 24-часовыми часами |
y | Год текущего столетия (00-99) |
Y | Год |
Z | Сокращение временной зоны (часового пояса), или пустая строка, если зона неизвестна |
Библиотека Boost date_time, обсуждаемая в дальнейших рецептах, не содержит возможностей форматирования, предлагаемых time_put
. Для удобства пример 5.5 содержит несколько процедур, преобразующих классы даты/времени Boost в формат структуры tm
, так что вы можете использовать процедуры time_put
.
using boost::gregorian;
using boost::posix_time;
void dateToTmAux(const date& src, tm& dest) {
dest.tm_mday = src.day();
dest tm_year = src.year() - 1900;
dest.tm_mon = src.month() - 1;
}
void ptimeToTmAux(const ptime& src, tm& dest) {
dest.tm_sec = src.seconds();
dest.tm_min = st.minutes();
dest.tm_hour = src.hours();
dateToTmAux(src.date(), dest);
}
tm ptimeToTm(const ptime& t) {
tm ret = tm();
ptimeToTmAux(t.ret);