Проверьте, является ли метка времени 1 часом - Groovy - PullRequest
0 голосов
/ 28 мая 2018

У меня есть временная метка (submitTime), которая мне нужна, чтобы проверить, не старше ли ее 1 часа или нет.Отметки времени указываются в микросекундах и включают дату.

currentTime = 1527530605357000000 (понедельник, 28 мая 2018 г., 6: 03: 25.357 PM)

submitTime = 1527529918658907821 (понедельник, 28 мая 2018 г. 5:51: 58.659 PM)

        long currentTime = (long) (new Date().getTime()*1000000)
        submitTime = job.SubmitTime // part of the code
        oneHhour = 3600000000     

        if (currentTime - submitTime > oneHhour) {
            println job.Name + " env is up more than 1 hour";

Но это не работает, так как результат - 686698092179, и это не представляет время.Помощь

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

В Groovy вы можете использовать TimeCategory, которая гораздо более интуитивно понятна:

def date = new Date(timestampInLong)

use (groovy.time.TimeCategory) {
     println (date > new Date() - 1.hour)
 }
0 голосов
/ 28 мая 2018

Предполагая, что SubmitTime является временной меткой в ​​микросекундах, вы можете сравнить ее с текущей временной меткой в ​​микросекундах следующим образом:

// Get the current time (System.currentTimeMillis) in microseconds:

long currentMicroseconds = TimeUnit.MILLISECONDS.toMicros(System.currentTimeMillis())

// You could also simply do this:
long currentMicroseconds = System.currentTimeMillis() * 1000

// Subtract the timestamps and compare:

if (currentMicroseconds - job.SubmitTime > 3600000000) {
    // More than an hour has elapsed
}

В качестве временной метки предполагается количество микросекунд с 1 января 1970 года., 00:00:00 GMT (в соответствии с Date.getTime).

...