如何转换绑定内的时区?

时间:2019-08-15 20:10:44

标签: java drools

我试图计算未完成的停机时间。开始时间存储在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)))'

我不知道怎么做,所以我需要帮助解决这个问题。

0 个答案:

没有答案