问题标签 [boost-date-time]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4223 浏览

c++ - 如何按照 RFC 3339 格式化 boost::date_time-object

我想date_time在 boost 中使用该库来表示我的应用程序中的时间。此应用程序将生成 Atom 提要,进而要求使用RFC 3339中指定格式的时间戳,例如“1990-12-31T23:59:60Z”或“1990-12-31T15:59:60-08:00” ”。

那么,如何根据这个 RFC 格式化时间?

我整天都在阅读日期时间输入/输出文档,但我似乎无法找到如何在需要时将 Z 放在末尾。此外,RFC 支持可选的小数秒,但只有一位数(例如“1990-12-31T23:59:60.5Z”)(*)。我似乎也无法找到如何做到这一点。

我总是可以编写自己的格式化例程来读出不同的所需字段,但在我看来,这与date_time图书馆的宗旨背道而驰。

有为这个库编写格式化程序的经验吗?还是我做错了?

(*):在我看来,RFC 中给出的 ABNF 只允许一位小数秒,但同一 RFC 中的示例有两位小数秒。那应该是什么意思?

0 投票
3 回答
18141 浏览

c++ - 用于 boost::posix_time::ptime 的 unix 时间戳

我需要将具有自纪元以来秒数的 double 转换为ptime. 我很确定一定有一种简单的方法可以做到这一点,但我找不到任何东西。谢谢。

编辑:原始时间戳是浮点数。我不能改变它,我不想失去亚秒级的精度。

0 投票
1 回答
9433 浏览

c++ - 从 boost ptime 中获取年份

我正在将现有程序转换为 C++,这里需要操作 Sybase 时间戳。这些时间戳包含日期和时间信息,据我所知,这些信息最好由boost::posix_time::ptime变量处理。在代码中的一些地方,我需要从变量中获取年份。

我的问题是:如何最有效地从 boost ptime 变量中提取年份?下面是一个示例程序,它需要三行代码,并带有一个额外ostringstream变量和一个boost::gregorian::date变量的开销。

根据 boost 文档:

类 ptime 依赖于gregorian::date接口到时间点的日期部分

但是gregorian::date似乎不是ptime. 不知何故,我在这里遗漏了一些东西。

难道没有更简单的方法从 中提取年份ptime吗?

样本:

0 投票
5 回答
14468 浏览

c++ - 如何获取当前时区?

在我见过的大多数例子中:

但我只想获取运行代码的机器的当前时区。我不想硬编码时区名称。

0 投票
2 回答
747 浏览

boost-date-time - 如何初始化 Boost 日期?

这页纸

http://www.boost.org/doc/libs/1_42_0/doc/html/date_time/gregorian.html#date_construction

解释说您可以使用这种调用来初始化Boost日期:

但是当我尝试这样做时,编译器不知道'Jan'。

它确实适用于:

编辑:

0 投票
1 回答
2248 浏览

c++ - 基本 boost date_time 输入格式问题

我有一个指向字符串的指针, (char *) 作为输入。日期/时间如下所示:
Sat, 10 Apr 2010 19:30:00
我只对日期感兴趣,而不是时间。我用我想要的格式创建了一个“input_facet”:

但我不知道该怎么办。最终我想从字符串创建一个日期对象。我很确定我在输入方面和格式方面走在正确的轨道上,但我不知道如何使用它。

谢谢。

0 投票
3 回答
24578 浏览

c++ - 使用 boost::date_time 在当前时区获取当前时间的最简单方法?

如果我date +%H-%M-%S在命令行(Debian/Lenny)上做,我会打印一个用户友好的(不是UTC,不是DST-less,普通人在手表上的时间)时间。

获得相同东西的最简单方法是什么boost::date_time

如果我这样做:

然后msg.str()比我想看的时间早了一个小时。我不确定这是否是因为它显示 UTC 或本地时区时间而没有 DST 更正(我在英国)。

修改上述内容以产生 DST 校正的本地时区时间的最简单方法是什么?我有一个想法,boost::date_time:: c_local_adjustor但无法从示例中弄清楚。

0 投票
2 回答
5630 浏览

c++ - 使用 boost date_time 来解析和创建 HTTP 日期

我正在编写一种 HTTP 代理,所以我需要能够做 3 件事:

  1. 给定RFC 2616, sec 3.3中指定的 3 种格式中的任何一种,解析 HTTP 日期,
  2. 将文件日期时间转换为 HTTP 日期字符串,以及
  3. 将日期输出为字符串。

作为参考,这些是我需要解析的日期时间的示例。我将只输出第一种格式:

我很确定 Boost date_time 可以做到所有这些,但我在使用数字 1 时遇到了一些问题。是否有人已经有代码可以做到这一点?也许我没有熟练地使用谷歌,但我找不到如何在任何地方使用 boost 来做到这一点的例子。

谢谢你的帮助!

更新:我有一个解决方案,但第二个解析器的年份错误(我猜是因为它是 2 位数的年份),最后一个解析器给出了异常(见下面的输出)。

输出:

0 投票
1 回答
610 浏览

visual-c++ - boost::gregorian::日期

我无法让它与 Visual c++ 2005 和 boost 1.43 一起使用

这个简单的源代码:

给出链接时错误:

我一直在使用其他已编译的 boost 库,如文件系统或线程,没有问题......

我使用它编译它

0 投票
4 回答
70991 浏览

c++ - 如何从字符串中解析日期/时间?

输入:带有日期和可选时间的字符串。不同的表示会很好但很有必要。字符串是用户提供的,可能格式不正确。例子:

  • "2004-03-21 12:45:33"(我认为这是默认布局)
  • "2004/03/21 12:45:33"(可选布局)
  • "23.09.2004 04:12:21"(德语格式,可选)
  • "2003-02-11"(时间可能会丢失)

需要的输出:自纪元 (1970/01/01 00:00:00) 或其他一些固定点以来的秒数。

奖励:此外,读取本地系统时间的 UTC 偏移量会很棒。

假设输入是相关机器上的本地时间。输出必须是 UTC。系统仅适用于 Linux(需要 Debian Lenny 和 Ubuntu)。

我曾尝试使用boost/date_time,但必须承认我无法完全理解文档。以下工作无需从系统本地时间转换为 UTC:

我认为boost::date_time可以提供所需的 UTC 偏移量,但我不知道如何。