如何解析 Metro (C++/CX) 应用程序中的日期?

2023-12-26

我有一个 C++/CX 应用程序正在处理文件中的一些数据。它有一个字符串代表用于保存日期的区域性,并且它有一些日期。我需要将它们从字符串转换为 Platform::DateTime。我听说过Windows::全球化::日期时间格式化 http://msdn.microsoft.com/en-us/library/windows/apps/br206828.aspx是要使用的类,但我不知道如何使用它。有人有例子吗?


WinRT 的 C++/CX 投影在很多方面与托管 (C#/VB) 投影不同,其中最主要的区别之一是基本类型的投影(例如Point, Size, String, and DateTime).

托管投影将这些类型投影为 .NET 类型(具有 BCL 的所有底层支持),而 C++ 投影通常最低限度地投影这些类型以进行互操作,期望用户依赖 C++ 库支持来实现更高级的功能。

因此,在 .NET 中,有符号的 32 位整数变为System.Int32(及其相关.Parse功能)在 C++ 中你会得到一个常规的 C++int预计将使用 CRT 功能(_wtoi)来完成类似的任务。这种差异通常会导致不同投影之间的“特征差距”,其中更痛苦的一个是处理DateTime结构(在 BCL 中有非常丰富的支持)。

我设法得到的解决方案是从COleDateTime类(通过包含 ATLComTime.h 找到)并继续COleDateTime->SYSTEMTIME->FILETIME->_ULARGE_INTEGER->Windows::Foundation::DateTime。这是严肃的体操,但是COleDateTime类具有您需要的特定于语言的解析功能。

LCID lcid = LocaleNameToLCID(L"es-es", LOCALE_ALLOW_NEUTRAL_NAMES); //parse language tag to get locale ID

COleDateTime dt;
dt.ParseDateTime(L"12 enero, 2012 10:00:01", 0, lcid); //parse date string based on language

//get system time struct
SYSTEMTIME st;
dt.GetAsSystemTime(st);

//COleDateTime is in local timezone, DateTime is in UTC, so we need to convert
SYSTEMTIME st_utc;
TzSpecificLocalTimeToSystemTime(nullptr, &st, &st_utc);

//get filetime struct to get a time format compatible with DateTime
FILETIME ft;
SystemTimeToFileTime(&st_utc, &ft);

//use _ULARGE_INTEGER to get a uint64 to set the DateTime struct to
_ULARGE_INTEGER ulint = {ft.dwLowDateTime, ft.dwHighDateTime};

Windows::Foundation::DateTime wfdt;
wfdt.UniversalTime = ulint.QuadPart;

我四处打听过DateTimeFormatter类,并且文档不正确;它不支持解析并且无意(仅格式化)。

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

如何解析 Metro (C++/CX) 应用程序中的日期? 的相关文章

随机推荐

  • 在 NSTextView 中替换 NSTextStorage 的正确方法?

    我正在制作一些文本查看器应用程序 目前我需要非常频繁和精确的线路处理能力 所以我想子类化NSTextStorage班级 但我找不到任何方法来设置新的文本存储NSTextView 我能找到的唯一方法是 NSLayoutManager repl
  • 在 libc++ 中使用 double 调用 std::from_chars 时出现编译错误

    我有一个小代码如下 int main double d const char str 26 50 std from chars str str strlen str d std cout lt lt d 此代码在 libstdc 中按预期工
  • 在 Gtk 3 中向 ToolButton 添加图标

    有没有办法将图标添加到 Gtk ToolButton Gtk3 使用 PyGi for Python 以添加到 GTK 3 工具栏 下面是我的代码 self addfile Gtk ToolButton self addfile set l
  • rspec 模拟:验证“应该”方法中的期望?

    我正在尝试使用 rspec 的模拟来设置我可以在 应该 方法中验证的期望 但我不知道如何做到这一点 当我在模拟上调用 should receive 方法时 它before all 方法退出后立即验证预期的调用 这是一个小例子 describ
  • App Engine 标准第二代运行时的 Memcache 替代品

    谷歌已经发布了其通用版本App Engine 标准的第二代运行时 https cloud google com blog products serverless announcing cloud run the newest member
  • R- 找到值的唯一排列

    我希望创建包含两个不同值的向量的所有可能排列 其中我控制每个值的比例 例如 如果我有一个长度为 3 的向量 并且我想要包含单个 1 的所有可能组合 则我所需的输出是一个如下所示的列表 list 1 lt list c 1 0 0 c 0 1
  • 插值到特定时间

    假设我有这个代码 import numpy as np import time from datetime import datetime class Measurements def init self time var value se
  • 这个函数是怎么计算的呢?

    我一直在研究 CodeWars katas 并且发现了有人提出的一个非常酷的解决方案 我的问题是我不明白它是如何工作的 我了解其中的一些内容 就像它通常在做什么 但不了解细节 它自己回来了吗 它是如何进行计算的 有人可以向我解释一下这一点
  • Dagger:注入@Named 字符串?

    EDIT2023 06 28 除非您有充分的理由不这样做 否则只需使用 Spring Boot 作为您的平台 并使用它的自动布线以及所有其他免费功能 EDIT2018 02 08 演示如何执行此操作的示例项目位于https github c
  • 不可读的 Pom 文件 - Maven

    我一直在构建一个没有任何问题的项目 但突然遇到了这个错误 我尝试重新制作工作区 但现在每次都会遇到相同的错误 我正在尝试在 eclipse che 中使用 Maven 简单地构建和运行一个项目 Build command gt mvn cl
  • 在 Web API 中保存图像时无法解决“GDI+ 中发生一般错误”的问题

    我已经用谷歌搜索并搜索了这个原因的解决方案 但是 我无法找到这个问题的解决方案 我使用了从谷歌参考文献中获得的相同代码 下面是我的代码 public HttpResponseMessage Save ScreenCaptureDetails
  • 如何让下拉菜单在单击而不是悬停时打开/关闭?

    我对 javascript 和 ajax jquery 非常陌生 并且一直在努力尝试让脚本在单击而不是悬停时打开和关闭下拉菜单 有问题的菜单位于http www gamefriction com Coded http www gamefri
  • Go time.Tick 与 time.NewTicker

    我是 Go 新手 最近开始学习 我遇到过股票行情指示器和计时器 在代码中 我们可以通过两种方式创建代码 throttler time Tick time Millisecond 50 lt throttler throttler time
  • Hibernate JPA一对一保存子类实体

    我有一个一对一的关系 使用PrimaryKeyJoinColumn在父端注释 现在我想单独保存子实体 例如 我有Employee and EmpInfo作为子实体 我需要保存EmpInfo 当然是在将父级的 id 属性设置为它之后 但是 当
  • 枚举内存使用情况

    我想知道以下哪个占用更多内存 struct Constants var age 10 or enum Constants case age 10 我也想知道之间的区别enum and define在内存存储方面 有人可以帮我吗 TLDR 您
  • Meteor Template.onRendered 或 Template.rendered 用于使用 jquery 库?

    我想将选择 一个jquery库 与meteor一起使用 我只需要使用以下代码 ship chosen 我尝试使用 onRendered 但如果我想让它工作 我需要等待 Template createTradeForm onRendered
  • 在 MATLAB 中控制颜色条比例

    问题 如何在自定义 MATLAB 颜色条中指定颜色过渡 具体来说 我想让黄色 见下文 覆盖颜色条的更多区域 可能是 19 5 21 5 或接近的区域 Using 这个答案 https stackoverflow com questions
  • JavaScript:在 HTML 中转义双引号

    我怎样才能防止images i title如果下面的 HTML 包含双引号 会破坏 HTML 吗 for i 0 i lt images length 1 i gallery img width 250 height 250 src tit
  • 从向量获取向量矩阵

    我有一个向量x 1 3 5 6 7 我想产生一个矩阵y其中行 y k x k k 2 所以在这种情况下得到的矩阵将是 1 3 5 3 5 6 5 6 7 我怎样才能实现这个目标without使用循环 有没有一种巧妙的方法可以通过索引来做到这
  • 如何解析 Metro (C++/CX) 应用程序中的日期?

    我有一个 C CX 应用程序正在处理文件中的一些数据 它有一个字符串代表用于保存日期的区域性 并且它有一些日期 我需要将它们从字符串转换为 Platform DateTime 我听说过Windows 全球化 日期时间格式化 http msd