Faz*_*bbi 22 timestamps libreoffice
我在单元格中有一个纪元时间,H2
其值为1517335200000
. 我正在尝试将其转换为人类可读的格式,该格式应30/01/2018 6:00:00 PM
以格林威治标准时间返回。
我试图用H2/86400+25569
我从 OpenOffice 论坛得到的公式来转换它。公式返回值17587319
。当我将 LibreOffice Calc 中的数字格式更改为 时Date
,它返回06/09/-15484
. 那不是我想要的价值。那么,如何以 dd/mm/yyyy hh:mm:ss 格式获取值?
ImH*_*ere 36
如果H2
包含要转换的数字 ( 1517335200000
)。
使H3
包含公式:
= H2/1000/(60*60*24) + 25569
这将返回数字 43130.75。
将单元格的格式更改H3
为日期。任何一个:
将H3
单元格的格式更改为所需的日期格式:
如果宽度不足以显示所需的格式,请扩展单元格的宽度(提示:出现三个 #)。
纪元时间以 1970 年 1 月 1 日以来的秒数为单位。
Calc 内部时间以 1899 年 12 月 30 日以来的天数为单位。
因此,要在 H3 中获得正确的结果:
得到正确的数字(最后一个公式):
H3 = H2/(60*60*24) + ( Difference to 1/1/1970 since 12/30/1899 in days )
H3 = H2/86400 + ( DATE (1970,1,1) - DATE(1899,12,30) )
H3 = H2/86400 + 25569
Run Code Online (Sandbox Code Playgroud)
但是你给出的纪元值太大了,比它应该的大三个零。应该是 1517335200 而不是 1517335200000。它似乎以毫秒为单位给出。因此,除以 1000。随着这种变化,公式给出:
H3 = H2/1000/86400+25569 = 43130.75
Run Code Online (Sandbox Code Playgroud)更改H3
日期和时间的格式(格式 --> 单元格 --> 数字 --> 日期 --> 日期和时间),您将看到:
01/30/2018 18:00:00
Run Code Online (Sandbox Code Playgroud)
在 H3。
当然,由于 Unix 纪元时间始终基于 UTC(+0 子午线),因此上面的结果需要移动与本地时区距离 UTC 一样多的小时数。因此,要获取当地时间,如果时区是太平洋标准时间 GMT-8,我们需要添加 (-8) 小时。H4 中具有本地时区 (-8) 的 H3 的公式为:
H3 = H2/1000/86400 + 25569 + H4/24 = 43130.416666
Run Code Online (Sandbox Code Playgroud)
并呈现为:
01/30/2018 10:00:00
Run Code Online (Sandbox Code Playgroud)
如果H3的格式设置为这样的时间格式。