我试图计算未完成的停机时间。开始时间存储在GMT时区中,结束时间是我所在时区中的本地日期时间(GMT + 2或GMT + 3)。我想以秒为单位计算差异。
空日期时间是1900-01-01 00:00:00,所以我有一个表达式,表示开始时间在结束时间之后才能找到未完成的停机时间。比我得到当前时间,并将其转换为历时(包括时区差),然后减去开始时间(转换为历时)。
在代码中看起来像
LoadingDowntimes
(globalobjectid == $CurrentDowntimeGOId &&
downtimeend.toEpochSecond(ZoneOffset.ofHours(0)) < downtimestart.toEpochSecond(ZoneOffset.ofHours(0)),
$DowntimesTimeUnfinished : (LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours($CurrentZoneOffset.offset)) - downtimestart.toEpochSecond(ZoneOffset.ofHours(0))))
此代码的所有部分在另一个地方都可以正常工作,但是在这个地方我收到错误消息
Variables can not be used inside bindings.
Variable [$CurrentZoneOffset] is being used in binding '(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours($CurrentZoneOffset.offset)) - StringToLocalDateTime(downtimestart).toEpochSecond(ZoneOffset.ofHours(0)))'
我不知道怎么做,所以我需要帮助解决这个问题。