如何从utc_time<seconds>投射到utc_time<days>

How to cast from utc_time<seconds> to utc_time<days>

本文关键字:gt time lt utc days seconds      更新时间:2023-10-16

我想加载utc_time<days>随年、月、日而变化
我不知道如何将结果'x'从date::utc_conds强制转换为utc_time<days>以及通常如何投射,例如utc_time<毫秒>到utc_ time<天>。。。

auto x = to_utc_time(sys_days(year_month_day{ year{y}, month(m), day(d) }));
utc_time<days> utc_tp = ?x?; // now x => date::utc_seconds

已解决:utc_time<days>utc_tp=time_point_cast<天数>(x);

time_point_cast从精细精度的time_point转换为粗略精度的time_proint。

除了向epoch截断的time_point_cast<days>之外,还有可用的:

  • floor<days>(x):截断到当天的开始。

  • ceil<days>(x):截断到第二天的开始。

  • round<days>(x):截断到最近的日期边界。

x在1970-01-01历元之后时,time_point_cast<days>(x)等效于floor<days>(x),当x在1970-01:01历元之前时,ceil<days>(x)等效。