Since this jenkins script pipeline is in Groovy, you can simply use new Date() on it. Something like this "Current time ${new Date()}" in the message argument should work:
slackSend (channel: '#slack-test', color: 'warning', message: "Current time ${new Date()}")
This will result in the following message in your channel:
Current time: Thu Oct 13 17:25:12 CEST 2016
If you need a specific date format, you can use the format(String format) method, for example, "${new Date().format('dd/MM/yyyy')}" :
slackSend (channel: '#slack-test', color: 'warning', message: "Current time ${new Date().format('dd/MM/yyyy')}")
Instead, the following message will be displayed:
Current time: 13/10/2016
UPDATE
Since you don't want to use any external plugins for a possible way to do this (a bit more complicated), to save the start time in a file using the following script in your jenkins project:
def f = new File("/tmp/buildStart.txt") def start = new Date().format('dd/MM/yyyy HH:mm:ss') f.text = start slackSend color: 'red', message: "Build start at ${start}"
Then, in another jenkins project where the build ends, analyze the date from the file and get the difference with the current time:
def f = new File("/tmp/buildStart.txt") def startDate = new Date().parse('dd/MM/yyyy HH:mm:ss',f.text) def endDate = new Date() def tookTime = groovy.time.TimeCategory.minus(endDate,startDate).toString() slackSend color: 'red', message: "Total time: ${tookTime}"