首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Unix/Linux中将Windows文件时间转换为秒

在Unix/Linux中将Windows文件时间转换为秒
EN

Stack Overflow用户
提问于 2011-05-28 20:56:10
回答 9查看 47.9K关注 0票数 39

我有一个跟踪文件,每个事务时间都以Windows文件时间格式表示。这些时间数字是这样的:

  • 128166372003061629
  • 128166372016382155
  • 128166372026382245

您能告诉我Unix/Linux中是否有C/C++库可以从这些数字中提取实际时间(特别是秒)吗?我可以写我自己的提取函数吗?

EN

Stack Overflow用户

回答已采纳

发布于 2011-05-28 21:12:25

这很简单: windows时期从1601-01-01T00:00:00Z开始。比UNIX/Linux时代早11644473600秒(1970-01-01T00:00:00Z)。Windows的计时单位是100纳秒。因此,从UNIX时期获取秒数的函数将如下所示:

代码语言:javascript
运行
复制
#define WINDOWS_TICK 10000000
#define SEC_TO_UNIX_EPOCH 11644473600LL

unsigned WindowsTickToUnixSeconds(long long windowsTicks)
{
     return (unsigned)(windowsTicks / WINDOWS_TICK - SEC_TO_UNIX_EPOCH);
}
票数 68
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6161776

复制
相关文章

相似问题

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