用于解析日期/时间字符串(包括时区)的 C++ 库(unix)

2024-01-22

我有多种格式的日期。 现在我想在 C++ 中有一个函数(来自某个库),它可以解析这些日期/时间字符串,并给我一些像 tm 这样的结构,或者将它们转换为某种确定性表示,以便我可以处理日期/时间。

我看到的一些格式如下: 2008 年 2 月 19 日星期二 20:47:53 +0530 2009 年 4 月 28 日星期二 18:22:39 -0700(太平洋夏令时间)

我可以做那些没有时区的事情,但对于那些有时区的事情,我基本上需要库将其转换为 tm 结构中的 UTC。

我尝试过 boost 和 strptime,但据我所知,两者都不支持输入时区。我有什么遗漏的吗?

对此的任何帮助将不胜感激。

Regards


您可以使用 boost 来做到这一点,但它对输入字符串中时区的格式有一点特殊。它必须在POSIX 时区格式 http://beta.boost.org/doc/libs/1_44_0/doc/html/date_time/local_time.html#date_time.local_time.posix_time_zone.

例如:

#include <iostream>
#include <boost/date_time/local_time/local_time.hpp>
#include <boost/date_time/time_facet.hpp>
int main()
{
       std::string msg = "28 Apr 2009 18:22:39 PST-8PDT,M4.1.0,M10.1.0"; // or just "PDT-7" but that will be a new, fake time zone called 'PDT'

       std::istringstream ss(msg);
       ss.imbue( std::locale(ss.getloc(),
                 new boost::local_time::local_time_input_facet("%d %b %Y %H:%M:%S%F %ZP")));
       boost::local_time::local_date_time t(boost::date_time::pos_infin);
       ss >> t;
       std::cout << t << '\n';
       // and now you can call t.to_tm() to get your tm structure
}

我会添加某种预处理,将时区格式转换为 posix 格式,然后将字符串提供给 boost。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于解析日期/时间字符串(包括时区)的 C++ 库(unix) 的相关文章

  • 带有 ASP.NET 按钮回发的 jQuery UI 对话框

    我的 ASP NET 页面上有一个运行良好的 jQuery UI 对话框 jQuery function jQuery dialog dialog draggable true resizable true show Transfer hi
  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • 如何使用T4从一个模板同时生成两个文件?

    我遇到的情况是 我需要生成两个 CSharp 代码文件 它们的代码几乎相同 但方法的输入和输出类型的命名空间不同 事实上 每个文件都针对特定国家 地区 并且类型来自特定国家 地区的 WSDL 我正在围绕服务编写一些包装器 逻辑完全相同 但从
  • 如何以编程方式删除受信任的根证书颁发机构中的证书?

    我需要能够从组织中的每台电脑中删除特定的证书 是的 我可以逐个座位 但我要到周四才能完成 而且我没有人力逐个座位 是否有使用 C 的编程方式来执行此操作 我认为你不需要编写任何 C 看看certmgr exe del http msdn m
  • 我担心我添加了太多接口

    我正在构建我的领域模型并继续重构它 正如我所做的那样 我发现我喜欢接口 因为它允许我根据接口为具体类型创建可重用的方法 控制器 视图 但是 我发现每次向域实体之一添加新属性时 我都会创建一个接口 例如 我有一个会员状态从抽象继承的对象Ent
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • ASP.NET - Crystal Report Viewer 打印按钮在 ASP.NET 中不起作用

    我正在使用 Visual Studio 2008 但我遇到了水晶报告问题 当我单击打印按钮时 它会将我带到弹出窗口 但未找到页面 弹出的网址是 http localhost aspnet client System Web 2 0 5072
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • MPI - 发送和接收列

    我需要从一个进程发送矩阵列并从另一个进程接收它 我尝试运行以下程序 但得到了一个奇怪的结果 至少我这么认为 仅复制矩阵的第一个元素 某些矩阵元素会发生意外变化 include
  • Clang 5.0 上的 vsprintf 和 vsnprintf [-Wformat-nonliteral] 警告

    我有这段代码 static void err doit int errnoflag int level const char fmt va list ap int errno save unsigned long n char buf MA
  • Windows Phone 的 JSON 反序列化

    我正在尝试反序列化以下 JSON 但我真的不知道如何使用 JSON net 来完成这项工作 我正在使用 C 和 JSON Net 库 我的 JSON 如下 found 3 bounds 43 54919 172 62148 43 54487
  • 仅以 UTC 格式存储 Doctrine2 日期时间

    有类似的问题 但我找不到任何与 Doctrine2 配置相关的问题 所以这里 我已经阅读了描述 Doctrine2 时区的页面 我只是想澄清一下 因为尚不清楚如何实际使用它 http doctrine orm readthedocs org
  • 如何配置 qt Creator 以显示 C++ 代码而不是反汇编程序?

    昨天我做了很多事情 比如更新 GCC Clang 和重新安装 Qt Creator 今天 在逐步调试我的代码时 调试器显示的是反汇编代码 而不是我编写的 C 代码 紧迫F10 or F11 调试器正在进入汇编代码而不是 cpp nor h我
  • 使用通用存储库模式和流畅的 nHibernate

    我目前正在开发一个中型应用程序 它将访问不同站点上的 2 个或更多 SQL 数据库等 我正在考虑使用类似的东西 http mikehadlow blogspot com 2008 03 using irepository pattern w
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗

随机推荐

  • 阻止 SELECT 直到结果可用

    我正在尝试编写一个用于 长轮询 的 PHP 脚本 当新行添加到 Postgres 数据库表时返回数据 有没有办法让 SELECT 查询仅在返回结果时返回 否则阻塞 或者我应该使用数据库之外的另一种信号机制 看看听 通知 NOTIFY 命令发
  • 如何摆脱 Golang 中的无限循环

    我正在用 Go 编写一个程序来猜测随机数 我遇到了 for 循环的问题 我无法阻止 for 循环不断迭代 满足条件后如何跳出循环 for loop true fmt Println read number i n if i ans fmt
  • Xamarin 表单 HttpClient 卡住

    我正在尝试从 soundcloud API 获取响应 这是我的代码 public static async Task
  • 如何使用 Pandas 按月和年对行进行分组和计数?

    我有一个数据集 其中包含姓名 身高 体重和出生日期等个人数据 我会构建一个图表 其中包含特定月份和年份出生的人数 我使用 python pandas 来完成此任务 我的策略是尝试按年和月进行分组并使用计数进行添加 但我得到的最接近的是按年或
  • C++ 多重继承内存寻址问题

    请忽略 include 部分 假设它们已正确完成 另外 这可能是特定于实现的 但 vtable 的概念也是如此 但我只是很好奇 因为它增强了我可视化多重继承 顺便说一下 我使用的是MinGW 4 4 0 初始代码 class A publi
  • Spring boot WAR部署在Tomcat中启动失败

    我试图将 Spring Boot 应用程序打包为战争 但是当我尝试在 tomcat 中部署战争并尝试启动它时 它会抛出一个异常 指出异常启动过滤器 java lang AbstractMethodError 我的Spring boot版本是
  • Objective-C - char 和 unichar 之间的区别?

    我搜索了很多关于差异的信息unichar and char但没有得到任何明确的概念 还告诉我差异char and unichar 使用时char and unichar char是 8 位 表示任意 8 位数字 UTF 8 代码单元或其他字
  • 我如何终止 iphone 中的 api 调用

    我是 iPhone 新手 我遇到了一个新问题 我的应用程序中有一个 api 交互 该 api 需要很长时间才能加载 当我手动终止我的应用程序时 在加载该 api 时我的应用程序关闭 然后我会打开我的应用程序 它会立即关闭 任何人都可以帮助我
  • 单击按钮 Xamarin.forms 将子项添加到父项

    我一直在尝试在 Android 中单击按钮时将标签视图添加到堆栈布局中 但它会抛出空指针异常 以下是我想要实现的目标 任何人都可以请建议如何在 xamarin forms 中实现这一目标 C 中的 Xamarin Forms 代码 Stac
  • 将 postgresql hstore 转换为 php 数组

    是否有一个好的 php 代码片段可以将 postgresql hstore 转换为 php 数组 它将正确地将 hstore 中未加引号的 NULL 转换为 php NULL EG 假设我们有以下 hstore 字符串 k1 gt v1 k
  • Xcode 7 不再有配置文件刷新按钮 - 那么如何将新的设备 ID 添加到配置文件中?

    我刚刚向配置门户添加了一个新设备 以前 下一步是手动更新相关配置文件以添加此新设备 但现在似乎这是由 Xcode 自动处理的 并且不再可能通过配置门户编辑配置文件以包含新设备 门户中不再有编辑按钮 好的 但是最新版本的 Xcode Xcod
  • 对静态函数的未定义引用

    当我在 A 类中创建一个静态函数并且我想从 B 类函数中调用它时 我遇到了一个奇怪的问题 我明白了 对 A funcA int 的未定义引用 这是我的源代码 a cpp include a h void funcA int i std co
  • 如何在flutter中检索sqlite数据库中的图像数据?

    我想在 sqlite 中检索图像数据 我使用下面的代码 var image await ImagePicker pickImage source imageSource List
  • 片段中的 MapActivity

    我有一个FragmentActivity public class parking extends FragmentActivity 它有 3 个选项卡 第二个和第三个是列表 已解决 public class tab2 extends Fr
  • Java中如何从另一个类获取类的特定实例?

    我创建了以下课程main方法 它创建新的实例Application和实例ApplicationModel ApplicationView and ApplicationController对于这个特殊的Application public
  • Shiny 应用程序中的“read_excel”

    我有一个闪亮的应用程序 使用read xlsx包中的函数xlsx 一切正常 但我想改为read excel from readxl 希望它会更快并且能够应对大文件 ui part fileInput inputFile Upload fil
  • 手部检测 Opencv

    我正在尝试使用 OpenCV 和 C 检测手 我能够找到图像中存在人手的手的轮廓 正图像 基本上我找到最大的轮廓并将其视为手部轮廓 假设在给定的图像中不存在手 那么我将采用任何轮廓并将其视为手 所以我开始思考我可以使用 haar 级联来确定
  • 反应式框架/DoubleClick

    我知道有一个简单的方法可以做到这一点 但今晚它打败了我 我想知道两个事件是否在 300 毫秒内发生 例如双击 在 300 毫秒内单击鼠标左键两次 我知道这就是响应式框架的构建目的 但该死的是 如果我能找到一个好的文档 其中包含所有扩展运算符
  • 使用 conda 安装 opencv

    这个问题与 如何通过Conda安装Python OpenCV 不同 因为这个问题是 5 年前提出的 当时所有软件包都有不同的版本 我尝试了该问题的所有答案 但都不起作用 有关详细信息 请参阅问题正文 现在 2019 年 7 月 如何使用 c
  • 用于解析日期/时间字符串(包括时区)的 C++ 库(unix)

    我有多种格式的日期 现在我想在 C 中有一个函数 来自某个库 它可以解析这些日期 时间字符串 并给我一些像 tm 这样的结构 或者将它们转换为某种确定性表示 以便我可以处理日期 时间 我看到的一些格式如下 2008 年 2 月 19 日星期