C++20向std::chrono
添加了时区支持,其中包括闰秒。但是,似乎只支持闰秒插入,而不支持闰秒删除,即负闰秒。(诚然,自1972年以来,只有积极的闰秒;但在过去几年里,漂移似乎已经逆转,在未来几年中,出现负闰秒似乎是可能的。)
从描述std::chrono::leap_second
类的方式可以看出这一点--没有办法区分肯定和负闰秒。
知道为什么std::chrono
不支持这种可能性吗?这是一种优化,还是某种错误?还是它已经得到了支持,而我错过了什么?
注意: MSVC实现似乎有一个允许负闰秒的非标准特性。
发布于 2022-04-25 11:51:06
[time.zone.leap.members]/2
实际上确实指定了负闰秒。
返回:+1s表示正闰秒,-1s表示负闰秒。注1:插入到2019年的所有闰秒都是正闰秒。-尾注
当标准提到插入一个闰秒时,那个闰秒可能是负的,这和删除一样。
注意:我不确定这是C++23还是C++20的新版本,我现在没有C++20草稿的副本。
https://stackoverflow.com/questions/71998977
复制相似问题