os.epoch() sometimes calculates the in-game time incorrectly
Jeuvke opened this issue ยท 3 comments
MC version: 1.16.4
Forge version: 35.1.13
CC:T version: 1.94.0
os.epoch("ingame")
sometimes calculates the in-game time wrongly when used with os.date()
. This seems to occur randomly when there have been many days played (high time value) and time gets skipped (through sleeping).
The time shown by os.date("%H:%M,os.epoch()/1000)
can be off by up to 12 hours.
Other mods used:
Astral sorcery, version 1.13.6
Autoreglib, version 1.6-47
Botania, version 1.16.4-410
Curios, version 4.0.3.0
JEI, version 7.6.0.62
Observerlib, version 1.4.4
Patchouli, version 1.16.4-48
Psi, version 1.16-88
If you can, I'd recommend not using os.date
with in-game time - instead use os.time
/os.day
directly.
os.date
is designed to operate on the Unix epoch (utc
, local
), specifically on UTC and your local timezone. Minecraft time is obviously in neither of those, so the result most likely won't make sense.
Most crucially, the unix epoch measures from midnight, while the in-game one works from 6 am. os.date
can't tell the difference, and so is going to spit out some very inaccurate values.
Note to self, this line will quite likely overflow. We should probably use a long literal and cast there instead. Not sure if this is causing the problem, but worth fixing anyway.