问题标签 [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.
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 中的示例有两位小数秒。那应该是什么意思?
c++ - 用于 boost::posix_time::ptime 的 unix 时间戳
我需要将具有自纪元以来秒数的 double 转换为ptime
. 我很确定一定有一种简单的方法可以做到这一点,但我找不到任何东西。谢谢。
编辑:原始时间戳是浮点数。我不能改变它,我不想失去亚秒级的精度。
c++ - 从 boost ptime 中获取年份
我正在将现有程序转换为 C++,这里需要操作 Sybase 时间戳。这些时间戳包含日期和时间信息,据我所知,这些信息最好由boost::posix_time::ptime
变量处理。在代码中的一些地方,我需要从变量中获取年份。
我的问题是:如何最有效地从 boost ptime 变量中提取年份?下面是一个示例程序,它需要三行代码,并带有一个额外ostringstream
变量和一个boost::gregorian::date
变量的开销。
根据 boost 文档:
类 ptime 依赖于
gregorian::date
接口到时间点的日期部分
但是gregorian::date
似乎不是ptime
. 不知何故,我在这里遗漏了一些东西。
难道没有更简单的方法从 中提取年份ptime
吗?
样本:
c++ - 如何获取当前时区?
在我见过的大多数例子中:
但我只想获取运行代码的机器的当前时区。我不想硬编码时区名称。
boost-date-time - 如何初始化 Boost 日期?
这页纸
http://www.boost.org/doc/libs/1_42_0/doc/html/date_time/gregorian.html#date_construction
解释说您可以使用这种调用来初始化Boost日期:
但是当我尝试这样做时,编译器不知道'Jan'。
它确实适用于:
编辑:
c++ - 基本 boost date_time 输入格式问题
我有一个指向字符串的指针, (char *) 作为输入。日期/时间如下所示:
Sat, 10 Apr 2010 19:30:00
我只对日期感兴趣,而不是时间。我用我想要的格式创建了一个“input_facet”:
但我不知道该怎么办。最终我想从字符串创建一个日期对象。我很确定我在输入方面和格式方面走在正确的轨道上,但我不知道如何使用它。
谢谢。
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
但无法从示例中弄清楚。
c++ - 使用 boost date_time 来解析和创建 HTTP 日期
我正在编写一种 HTTP 代理,所以我需要能够做 3 件事:
- 给定RFC 2616, sec 3.3中指定的 3 种格式中的任何一种,解析 HTTP 日期,
- 将文件日期时间转换为 HTTP 日期字符串,以及
- 将日期输出为字符串。
作为参考,这些是我需要解析的日期时间的示例。我将只输出第一种格式:
我很确定 Boost date_time 可以做到所有这些,但我在使用数字 1 时遇到了一些问题。是否有人已经有代码可以做到这一点?也许我没有熟练地使用谷歌,但我找不到如何在任何地方使用 boost 来做到这一点的例子。
谢谢你的帮助!
更新:我有一个解决方案,但第二个解析器的年份错误(我猜是因为它是 2 位数的年份),最后一个解析器给出了异常(见下面的输出)。
输出:
visual-c++ - boost::gregorian::日期
我无法让它与 Visual c++ 2005 和 boost 1.43 一起使用
这个简单的源代码:
给出链接时错误:
我一直在使用其他已编译的 boost 库,如文件系统或线程,没有问题......
我使用它编译它
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 偏移量,但我不知道如何。