首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QDateTime到FILETIME

QDateTime到FILETIME
EN

Stack Overflow用户
提问于 2013-10-31 11:06:50
回答 1查看 2.1K关注 0票数 2

我需要将一个QDateTime传递给接受费列特的Win32函数。

这是MSDN对FILETIME的定义:

包含一个64位值,表示自1601年1月1日(世界协调时)以来每隔100纳秒的时间.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-31 11:06:50

我做了一个函数来做这个,我测试了它,它起作用了:

代码语言:javascript
复制
// Convert a QDateTime to a FILETIME.
FILETIME toWinFileTime(const QDateTime &dateTime)
{
    // Definition of FILETIME from MSDN:
    // Contains a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC).
    QDateTime origin(QDate(1601, 1, 1), QTime(0, 0, 0, 0), Qt::UTC);
    // Get offset - note we need 100-nanosecond intervals, hence we multiply by
    // 10000.
    qint64 _100nanosecs = 10000 * origin.msecsTo(dateTime);
    // Pack _100nanosecs into the structure.
    FILETIME fileTime;
    fileTime.dwLowDateTime = _100nanosecs;
    fileTime.dwHighDateTime = (_100nanosecs >> 32);
    return fileTime;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19704817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档