将毫秒 UTC 转换为人类可读的 Date_Time

2023-12-10

我正在努力弄清楚如何使用 boost::date_time 执行转换。 我想将从 Unix 纪元(1970 年 1 月 1 日 00:00)测量的毫秒值转换为人类可读的字符串 - 类似于:2/13/2012 15:20:11将是理想的。

我已经尝试过一些我见过的 std C++ / boost 建议,但还没有任何运气。这是我使用的代码:

    long long ticksFromEpoch = 1329117220501;

    std::time_t tt = static_cast<time_t>(ticksFromEpoch);

    boost::posix_time::ptime dt = boost::posix_time::from_time_t(tt);

    // Create a time_zone_ptr for the desired time zone and use it to create a local_date_time
    boost::local_time::time_zone_ptr zone(new boost::local_time::posix_time_zone("UTC"));
    boost::local_time::local_date_time dt_with_zone(dt, zone);

    std::stringstream strm;

    strm.imbue(std::locale(std::cout.getloc(), new boost::local_time::local_time_facet("%Y-%m-%d %H:%M:%S"))); // 15:14
    strm << dt_with_zone;

    // Print the stream's content to the console
    std::cout << strm.str() << std::endl;

输出是:2032-07-01 20:20:37这显然是不正确的。我怀疑我没有构建ticksFromEpoch变量正确但我不知道为什么。有人能指出我正确的方向吗?任何帮助深表感谢!!


time_t通常是自“纪元”以来的秒数,而不是毫秒。 如果你不关心毫秒,你应该能够这样做:

std::time_t tt = static_cast<time_t>(ticksFromEpoch/1000)

如果您确实关心毫秒,您可以将它们添加回最后(这对于像 12:00:00.001 AM 这样的时间来说是很棘手的)

或者你需要走另一条路。您可能需要使用这样的东西:(未经测试)

boost::posix_time::ptime t2(
  boost::gregorian::date(1970,boost::date_time::Jan,1),  //The epoch
  boost::posix_time::seconds( ticksFromEpoch / 1000 ) + // Number of seconds
  boost::posix_time::milliseconds( ticksFromEpoch % 1000)  // And the micros too.
  );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将毫秒 UTC 转换为人类可读的 Date_Time 的相关文章

随机推荐

  • 如何从unix中的给定日期获取上周日日期

    获取上周日日期作为给定日期 不是当前日期 作为输入的输出 输入示例 2017 年 8 月 30 日 m d Y 输出应该是上周日 08 27 2017 以下所有命令都使用当天作为参考 但我想将参考日期作为输入以获取上周日 请帮我执行命令 日
  • Scaffold-DbContext“登录失败”“错误号:4060,状态:1,类别:11”

    我的 ASP NET MVC 核心应用程序应通过实体框架连接到现有的 MSSQL LocalDB 文件 数据库优先开发需要对现有数据库进行逆向工程 按照中的说明进行操作官方文档 我在 NuGet 包管理器控制台中运行以下命令 Scaffol
  • R:无效的多字节字符串[重复]

    这个问题在这里已经有答案了 我使用不带任何参数的 read delim filename 来读取 R 中制表符分隔的文本文件 df read delim file 这按预期进行 现在我有一个奇怪的错误消息 我无法理解它 Error in t
  • 检测后退按钮但不关闭对话框片段

    我有一个浮动对话框的对话框片段 其中包括一个特殊的键盘 当用户在 EditText 字段内按下时会弹出该键盘 正常的 IME 停止显示 我希望当用户按下后退按钮 就像普通的 IME 服务一样 时键盘被关闭 可见性 GONE 但对话框保持可见
  • 为什么我收到手势识别器不能在原型对象上使用的信息?

    当我将 UITapGestureRecognizer 放入场景中 UITableViewCell 内的 UIView 内时 我从情节提要中收到上述错误 知道为什么我会收到此错误吗 我不确定为什么会出现这种限制 但我知道为什么您会收到错误消息
  • 向 Google 蜡烛图添加注释(发布的解决方案会触发 TypeError)

    我正在尝试向 Google Candlestick 图表添加一些注释 我注意到有人已经问过同样的问题 向 Google 烛台图表添加注释 用户Aper u回复了详细的解决方案来扩展图表并添加注释 因为图表没有内置任何此类功能 但是 当我尝试
  • PHP正则表达式检查英文名称

    寻找正则表达式来检查有效的英文名称 即 A Z a z space only 名字 可选 中间名 姓氏 一个可接受的例子 John von Neumann Thanks 编辑 添加检查代码 usr bin php
  • 如何在 c/c++ 中构建没有导入表的可执行文件?

    我找到了修复导入表的工具here 但是如果没有在 c c 中首先构建导入表 PE 是如何可执行的呢 只是不要使用 CRT 也不要使用任何导入的函数 pragma comment linker entry start int start re
  • findAndModify 或 findOneAndUpdate - “不是函数”

    首先 哪个最好 findAndModify or findOneAndUpdate or findByIdAndUpdate 就我而言 我有一张这样的表 seqkeys id invoice seq NumberInt 1 id recei
  • 在编译时获取`std::initializer_list`的大小

    我正在努力实施reshapefortran 与 C 11 14 的函数 我设计了一个函数 该函数接受两个std initializer list 首先initializer list给出我用来初始化的初始值D维数组 第二initialize
  • GCC 如何自动知道包含 glib 库?

    我用 C 语言编写了一个简单的程序 它使用glib h 但是当我编译它时 我收到如下错误 gcc test c o test test c 3 18 fatal error glib h No such file or directory
  • Facebook 成功登录后,ExternalLoginConfirmation 返回 null

    在MVC 5模板中实现Facebook登录 添加了应用程序ID和密码 最初登录失败 因为它返回 null public async Task
  • Twitter 的 Bootstrap typeahead 设置

    我用的是官方的推特上的例子 主要问题是 我可能不知道如何使用霍根怪物 JS端 search name typeahead name name remote url entities search autocomplete json quer
  • MVC 3 和 WebForms 可以在网站上共存吗?

    我目前有一个网站 其中有一个 WebForms 4 网站 该网站是 www mysite co uk 我目前正在使用 MVC 3 开发一个微型网站 我想将其上传到同一网站 但在不同的目录下 这可能吗 或者我需要创建一个新网站吗 是的 这是可
  • 如何使用运动布局缩放父视图内的textView?

    我正在尝试缩放容器视图内的 textView Activity 使用运动布局 如果我不将 textView 放置在容器内 我可以缩放它 这是我的活动布局和运动布局描述文件 如何使scaleX和scaleY工作 活动布局
  • 前置摄像头填充圆形 UIView

    在我正在开发的应用程序中 用户需要进行 自拍 是的 我知道 但该应用程序仅供私人使用 我已经让相机在圆形 UIView 区域中显示一切正常工作 但是我无法让它正确缩放并填充圆圈 这是它现在正在做的事情 这就是我想要它做的事情 这是我的 UI
  • 如何使用 Visual Studio Code 引用程序集?

    我想在我在 OSX 上使用 Visual Studio Code 编写的控制台应用程序中引用 System Drawing dll 即我想使用这些 using 语句 using System Drawing using System Dra
  • 视频缩略图阵列采用者滚动速度缓慢

    我创建了一个采用者来显示特定文件夹中视频的图像缩略图 但当我滚动时 它有点滞后 但这是为什么呢 下面是代码 主要活动类别 public class TestvideolistingActivity extends ListActivity
  • Gulp – 如何在终端中打开新选项卡?

    我对 OSX 的终端知之甚少 但我想通过 gulp 自动打开终端中的选项卡 然后使用 gulp shell 之类的东西在其中运行 gulp 命令 例如 我想要一个 gulp 任务在终端选项卡上启动 mongoDB 并在另一个选项卡中启动我的
  • 将毫秒 UTC 转换为人类可读的 Date_Time

    我正在努力弄清楚如何使用 boost date time 执行转换 我想将从 Unix 纪元 1970 年 1 月 1 日 00 00 测量的毫秒值转换为人类可读的字符串 类似于 2 13 2012 15 20 11将是理想的 我已经尝试过