Feeling rusty... compare two times?

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
1 Like