当前位置: 首页 > 知识库问答 >
问题:

解析“std::chrono”的时间字符串有什么问题吗?

张岳
2023-03-14

我只想使用以下方法将时间字符串解析为chrono::system_clock::time_point:

#include <iosfwd>
#include "date/date.h"

std::stringstream ssTime;
ssTime << "17:34:05";
std::chrono::system_clock::time_point tp_time;
ssTime >> date::parse("%H:%M:%S", tp_time);

我希望在epoch之后获得指定时间的time_point,但我得到了0(即epoch)。

注意,我使用的是Howard Hinnant的日期库。

共有1个答案

沃学
2023-03-14

parse函数的设计是,如果您没有为要解析的类型解析足够的信息,则在流上设置failbitparse认为{h,m,s}信息不足以唯一确定时间的瞬间(system_clock::time_point),因此此分析失败。

您可以通过解析为持续时间来实现此操作:

#include "date/date.h"
#include <sstream>

int
main()
{
    std::stringstream ssTime;
    ssTime << "17:34:05";
    std::chrono::seconds tp_time;
    ssTime >> date::parse("%H:%M:%S", tp_time);
}

在本例中,tp_time的值为63245s。

 类似资料:
  • 问题内容: 我有一个日期时间字符串,我不知道如何在Python中解析它。 字符串是这样的: 我试过了 但是Python引发 根据Python文档: %z UTC偏移量,格式为+ HHMM或-HHMM(如果对象是天真对象,则为空字符串)。 解析此时间字符串的正确格式是什么? 问题答案: 时区解析有问题。看一下包装:

  • 问题内容: 我遇到了将“星期几”字符串转换为值的问题。我找不到包中内置的任何内容。 然后,我编写了这个简单的函数(满足了我的需求): 还有其他 建议 或 更惯用的 方式在Golang中执行此转换吗? 谢谢! 问题答案: 前言: 我在中发布了此实用程序,请参见。 是的,使用映射而不是数组,因此查找更快,更简单: 测试它: 输出(在Go Playgorund上尝试): 小费: 您甚至可以使用循环来安全

  • 本实例演示了如何通过DateFormat类的parse方法根据不同的本地环境解析日期/时间字符串,并将其转换成Date对象。在最后还演示了parse方法如何解析不符合日期/时间逻辑的字符串。 例子 : 解析日期/时间字符串 实例的代码如下: package chapter8; import java.text.DateFormat; import java.util.Date; import ja

  • 问题内容: 在PHP中,将解析包含在“双引号”中的字符串以替换变量,而不会解析包含在“单引号”中的字符串。在Python中,这是否也适用? 问题答案: 否: 2.4.1。字符串和字节文字 …用简单的英语:两种类型的文字都可以用匹配的单引号()或双引号()括起来。它们也可以包含在三个单引号或双引号的匹配组中(通常称为三引号字符串)。反斜杠()字符用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引

  • 我有一个字符串时间格式。我没有找到任何格式来解析这个字符串值。有没有办法将这个字符串值转换为Gotime.Time? 编辑 - 这不是重复的问题。我知道如何解析,但我不知道我们可以使用时间格式包中列出的任何布局。这个答案清除了我的涂鸦。

  • 我使用下面的PHP代码从NOAA的潮汐报告站API读取XML数据: 不幸的是,我最终看到它显示了这个: 对象(SimpleXMLElement)#246(0){} 在我看来,XML的格式非常好——为什么不进行解析呢?通过查看另一个问题(Simplexml_load_string()解析错误失败),我认为可能是头的问题-http调用确实返回了一个字符集值“ISO-8859-1”。但是添加调用似乎并没