首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows SYSTEMTIME结构与系统时钟不同?

Windows SYSTEMTIME结构与系统时钟不同?
EN

Stack Overflow用户
提问于 2016-08-04 03:01:18
回答 1查看 156关注 0票数 0

以下代码的目标是调用Win32函数FileTimeToSystemTime

代码语言:javascript
复制
pub fn convert_times(s: SystemTime) -> Option<SYSTEMTIME> {
    let mut st = SYSTEMTIME::default();
    let x: u64 = unsafe { transmute(s) };
    let low = (x & 0x00000000FFFFFFFF) as u32;
    let high = ((x & 0xFFFFFFFF00000000) >> 32) as u32;
    let fs = FILETIME {
        dwLowDateTime: low,
        dwHighDateTime: high,
    };
    if unsafe { FileTimeToSystemTime(transmute(&fs), transmute(&mut st)) } > 0 {
        Some(st)
    } else {
        None
    }
}

当我获取一个已知的文件时间131147233180069965时,它是在2016-08-03T14:41 US-EST(GMT+5)根据我的计算机时钟生成的。我从这里得到的返回结构返回2016-0803T18:41:58.006

这是+4小时。

而US-EST是GMT+5?

是不是因为夏令时是-1小时?

EN

回答 1

Stack Overflow用户

发布于 2016-08-05 20:45:45

FileTimeToLocalFileTime()返回协调世界时的时间。在美国,通常位于东部夏令时的地点将在夏令时转换为东部夏令时,因此它将是美国东部夏令时-1或GMT+5 -4。

要获取本地时区的时间并考虑到DST,则需要调用SystemTimeToTzSpecificLocalTime()

一般来说,这是不可取的,因为在UTC中工作对于计算机来说是可取的,因为两台相互通信的计算机不一定在同一时区。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38751677

复制
相关文章

相似问题

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