LunarML
LunarML copied to clipboard
Date.fromTimeLocal(Time.now()) returns UTC
~ $ cat test-time.sml
val t1 = Date.fromTimeLocal(Time.now())
val minute = Date.minute t1
val hour = Date.hour t1
val day = Date.weekDay t1
val day = case day of
Date.Mon => 0
| Date.Tue => 1
| Date.Wed => 2
| Date.Thu => 3
| Date.Fri => 4
| Date.Sat => 5
| Date.Sun => 6
val _ = print ("day-hour-minute: "^(Int.toString day)^"-"^(Int.toString hour)^"-"^(Int.toString minute)^"\n")
~ $ mlton test-time.sml
~ $ ./test-time
day-hour-minute: 5-12-15
~ $ lunarml compile --luajit test-time.sml
~ $ luajit test-time.lua
day-hour-minute: 5-11-15
Sat Jun 21 12:15:37 PM BST 2025
I am in London UK +1
Regards
It prints the correct time on my time zone (JST=UTC+09:00). It is likely that LunarML does not correctly handle the summer time (DST). What does example/date.sml say?
example $ lunarml compile date.sml
example $ lua date.lua
year=2023
month=Jul
day=19
hour=21
minute=43
second=0
weekDay=Wed
yearDay=199
offset=NONE
isDst=true
year=2000
month=Dec
day=31
hour=23
minute=59
second=59
weekDay=Sun
yearDay=365
offset=NONE
isDst=false
year=2020
month=Dec
day=31
hour=23
minute=59
second=59
weekDay=Thu
yearDay=365
offset=NONE
isDst=false
year=2100
month=Dec
day=31
hour=23
minute=59
second=59
weekDay=Fri
yearDay=364
offset=NONE
isDst=false
year=2025
month=Jun
day=24
hour=13
minute=42
second=10
weekDay=Tue
yearDay=174
offset=NONE
isDst=true
Tue Jun 24 12:42:10 2025
Tue Jun 24 PM 12:42:10 2025 BST
year=2025
month=Jun
day=24
hour=12
minute=42
second=10
weekDay=Tue
yearDay=174
offset=0.000
isDst=false
Tue Jun 24 12:42:10 2025
Tue Jun 24 PM 12:42:10 2025 BST
localOffset=0.000
example $ date
Tue Jun 24 02:42:12 PM BST 2025
I wrote a commit that may fix this: 3fe601a8a7c4e1d95d7dcc9525a7425f29ba954b Please try out!