我遇到了以下公式,其中从TimeStamp和Timezone中检索localTimeDay:
long localTimeDay = (timeStamp + timeZone) / (24 * 60 * 60 * 1000) * (24 * 60 * 60 * 1000);
我无法理解Local Time Day
的含义以及该公式如何“神奇地”基于TS和TZ进行转换。
任何人都可以帮助理解吗?
timestamp
是自1970年1月1日世界标准时间00:00以来的毫秒数。timeZone
是距UTC的偏移量(以毫秒为单位)。它可以是正数,负数或零。当我添加偏移量时,我得到一个不同的时间点,其中该UTC偏移量的日期和时间与UTC中的原始日期和时间相同。因此,这是一种从UTC时间点转换到一天开始的某个UTC偏移量的方法。例如,如果起始点为2020-04-23T05:16:45Z且偏移量为+02:00,则结果将表示时间2020-04-23T00:00 + 02:00。
这不是您程序中想要的代码。您应该将这种转换留给经过验证的库方法。但是,可能是在经过测试和验证的库中找到的代码。