我似乎找不到任何有关“变体时间”的信息(DATE, 双精度, 8 字节变量) 被处理....
我有一个不同的时间“A“哪个值是”41716.892329”。
如果我转换“A“ 使用 ”变体时间到系统时间" (or "COle日期时间”) - 我明白“2014-03-18 21:24:57".
- 这个变异时间是如何计算的?
- 它能够存储毫秒吗?
- 有什么方法可以确定变体时间是上午还是下午时间?
我对上午/下午的事情有点困惑,因为我当时使用的设备被设置为“09:24:57”(上午)而不是“21:24:57”(下午)。
这是否是设备 SDK 的问题,为我提供了不正确的变化时间?
EDIT:这是设备中时区设置不正确的问题(设置为“GMT-12:00”而不是“GMT-00:00”)
Thanks.
“变量时间”(DATE) 与 Excel 日期几乎相同,但不完全相同。 Excel(因为它最初是与 Lotus-123 竞争)复制了 Lotus 存储日期的方式(为了与现有用户兼容)。不幸的是,Lotus 有一个错误(可能是故意的,请参阅乔尔·斯波尔斯基的博客)这意味着 1900 年 2 月有 29 天。因此,Excel 还认为 1900 年 2 月有 29 天(仍然)。尝试将值 60 格式化为日期。然而,“变量时间”与 OLE 自动化(不仅仅是在 Excel 内部)一起使用,并且已被修复,以便它可以正确地代表任何时间点,最初是1753年1月1日到2078年12月31日之间(ca. 2006)但现在在 100 年 1 月 1 日到 9999 年 12 月 31 日之间(12/05/2018)这样可以通过简单的(可能是两部分,见下文)减法来获得时间差。
埃里克·利珀特有全面分析但总结就是:
“变量时间”是一个双精度数,其中整数部分是天数after1899 年 12 月 30 日。因此,0 是 30dec1899,而 01jan1900 实际上是 2(与 Excel 不同,Excel 复制 Lotus 并将其定义为第 1 天),并且没有 29feb1900。的小数部分十进制字符串表示被视为从当天 00:00:00 开始的无符号部分日偏移。这里措辞的意义在于,虽然在数字上 -1.75 与 -1 + -0.75 相同,但不同的时间将 -1.75 视为 -1 + +0.75(即一天的 3/4)after1899 年 12 月 29 日午夜)。因此,在将负值转换为 YYYY/MM/DD HH:MM:SS 或计算涉及负值的日期差异时,必须单独处理日期和时间部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)