你在這裏。
def dateStr1 = 'Tue Feb 28 16:23:20 2017 -0600'
def dateStr2 = 'Tue Feb 28 17:24:06 EST 2017'
def pattern1 = "EEE MMM dd HH:mm:ss yyyy Z"
def pattern2 = "EEE MMM dd HH:mm:ss z yyyy"
def date = new Date().parse(pattern1, dateStr1)
def executeDate = new Date().parse(pattern2, dateStr2)
assert date < executeDate, 'Execute Date is earlier than the date'
您可以快速在線試用(陰性)Demo
編輯:基於OP的評論解析字符串並提取日期
你本來可以@GreBeardedGeek的解析邏輯。
//Closure to get the date parsed
def getDate = { delimiter, dateFormat, dateStr ->
def dt = dateStr.substring(dateStr.indexOf(delimiter) + 1).trim()
println dt
new Date().parse(dateFormat, dt)
}
def dateStr1 = 'Date : Tue Feb 28 16:23:20 2017 -0600'
def dateStr2 = 'Executed at : Tue Feb 28 17:24:06 EST 2017'
def pattern1 = "EEE MMM dd HH:mm:ss yyyy Z"
def pattern2 = "EEE MMM dd HH:mm:ss z yyyy"
def date = getDate(':', pattern1, dateStr1)
def executeDate = getDate(':', pattern2, dateStr2)
assert date < executeDate, 'Execute Date is earlier than the date'
編輯#2可以更簡化爲:
//Set/assign the two dates
def dateStr1 = 'Date : Tue Feb 28 16:23:20 2017 -0600'
def dateStr2 = 'Executed at : Tue Feb 28 17:24:06 EST 2017'
def getDate = { dateStr -> Date.parse(dateStr.substring(dateStr.indexOf(':') + 1).trim()) }
assert getDate(dateStr1) < getDate(dateStr2), 'Execute Date is earlier than the date'
來源
2017-03-10 06:31:24
Rao
你能提供更多的比賽嗎?你把日期變成變量了嗎?你需要groovy的解決方案嗎? – Rao
你如何運行這些命令?在命令提示符下?並將這些值提供給groovy腳本?或者,如何將這些日期記錄到您想要比較的程序中? – Rao
這是我的groovy腳本的一部分。我正在Jenkins管道上運行它。我想添加一個預先檢查來比較執行特定操作之前的兩個日期。 – Sriram