gpt4 book ai didi

datetime - 使用 boost 解析微秒

转载 作者:行者123 更新时间:2023-12-01 02:45:59 25 4
gpt4 key购买 nike

我在找 boost::posix_time::time_input_facet这将让我解析毫秒。它似乎与格式化微秒的 "%f" 不同。

所以如果我有 2011-12-11 08:29:53.123000 ,我想要正确的格式来解析它,就像 "%Y-%m-%d %H:%M:%S" .

最佳答案

如果您有日期/时间字符串,则可以将其转换为 ptime 对象,如下所示:

using boost::posix_time;
ptime t = time_from_string(datetimeString);

有了这个,您可以轻松掌握包含小数秒的 time_duration。
time_duration td = t.time_of_day();
long fs = td.fractional_seconds();

您还可以像这样获得总毫秒数或微秒数:
long ms = td.total_milliseconds();
long us = td.total_microseconds();

有关可以在 documentation 中执行的操作的更多信息.

更新

如果输入格式可能不同,那么您要使用 time_input_facet您可以查看 time_facet.hpp为适当的格式。以下是您可能想要选择的内容:
  static const char_type fractional_seconds_format[3];               // f                                                                                                                                 
static const char_type fractional_seconds_or_none_format[3]; // F
static const char_type seconds_with_fractional_seconds_format[3]; // s

更新2

time_facet.hpp (Boost 1.45)解析时我看到以下内容:
case 'f':
{
// check for decimal, check special_values if missing
if(*sitr == '.') {
++sitr;
parse_frac_type(sitr, stream_end, frac);
...

我不明白为什么这在秒和小数秒之间只需要一个点。也许您使用其他版本的 Boost?

关于datetime - 使用 boost 解析微秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6957153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com