It depends on what you’ve written your rule in. With scripted automation, Jython and the helper libraries, you can use the core.date.seconds_between function…
from core.log import logging, LOG_PREFIX#, log_traceback
from core.date import seconds_between
LOG = logging.getLogger("{}.TEST".format(LOG_PREFIX))
LOG.warn(seconds_between(items["Virtual_DateTime_1"], items["Virtual_DateTime_2"]))
However, java.time.temporal.ChonoUnit provides something similar…
from java.time.temporal.ChronoUnit import SECONDS
from core.log import logging, LOG_PREFIX#, log_traceback
LOG = logging.getLogger("{}.TEST".format(LOG_PREFIX))
LOG.warn(SECONDS.between(items["Virtual_DateTime_1"].zonedDateTime, items["Virtual_DateTime_2"].zonedDateTime))
This can also be used in the rules DSL…
import java.time.temporal.ChronoUnit
rule "Test DSL rule"
when
System started
then
logWarn("Rules", "Test: Start")
logWarn("Rules", "{}", ChronoUnit.SECONDS.between((Virtual_DateTime_1.state as DateTimeType).zonedDateTime, (Virtual_DateTime_2.state as DateTimeType).zonedDateTime))
logWarn("Rules", "Test: End")
end