Time.now
возвращает задачу с Time.Time
, который вы передаете timeZoneDate
как now
. Затем вы передаете now
в Time.ZonedDateTime.fromDateTime
, что предполагает Time.DateTime.DateTime
(что не должно вызывать удивления, учитывая его имя). Поэтому вам нужно конвертировать now
из Time.Time
в Time.DateTime.DateTime
. Кажется, вы можете сделать это, используя Time.DateTime.fromTimestamp
.
Исходя из этого, что-то вроде залога этого должно работать:
posixDateTask : Task.Task x Time.Date.Date
posixDateTask =
let
timeZoneDate now =
let
dateTime =
Time.DateTime.fromTimeStamp now
timeZone =
TimeZones.canada_pacific ()
zonedDateTime =
Time.ZonedDateTime.fromDateTime timeZone dateTime
in
Time.Date.date
(Time.ZonedDateTime.year zonedDateTime)
(Time.ZonedDateTime.month zonedDateTime)
(Time.ZonedDateTime.day zonedDateTime)
in
Time.now
|> Task.map timeZoneDate