Да, ostringstream
- хороший способ сделать это. Вы также можете использовать date::format
, который возвращает string
, но при этом все равно используется ostringstream
для внутреннего использования:
string s = format("%F %T %Z", now);
. С помощью любого из методов вы можете усечь до milliseconds
вывод, усечив вход * От 1009 * до milliseconds
до форматирования. Вы можете выбрать любой из этих режимов округления:
- округление до даты эпохи:
time_point_cast<milliseconds>(now)
- округление в прошлое:
floor<milliseconds>(now)
- округление до будущее:
ceil<milliseconds>(now)
- раунд в сторону ближайшего (в направлении даже на t ie):
round<milliseconds>(now)
-
string s = format("%F %T %Z", floor<milliseconds>(now));
2020-03-26 17:38:24.473 UTC
In C + +20 это станет:
string s = format("{:%F %T %Z}", floor<milliseconds>(now));