Getting current timestamp in inline pipeline script using pipeline plugin of hudson

you can also use this, I needed this in ms so:

echo "TimeStamp: ${currentBuild.startTimeInMillis}"

echo "TimeStamp: ${Util.getTimeSpanString(System.currentTimeMillis())}"

Just format the Date object:

stage('Foo') {
  steps {
    script {
        def now = new Date()
        println now.format("yyMMdd.HHmm", TimeZone.getTimeZone('UTC'))
    }
  } 
}

There are a bunch of ways to get time depending on what APIs you find most intuitive:

  1. new Date() has since been added to the script-security-plugin whitelist

  2. RunWrapper APIs through use of currentBuild global variable

    1. final long startTime = currentBuild.startTimeInMillis: long value of when the build was started in milliseconds
    2. final long scheduledTime = currentBuild.timeInMillis: long value of when the build was scheduled in milliseconds
    3. final long buildDuration = currentBuild.duration: milliseconds it has taken to build
    4. final String buildDurationAsStrong = currentBuild.durationString: duration as a String
  3. Using whitelisted java.time APIs, for example LocalDateTime

    import java.time.LocalDateTime
    final LocalDateTime currentTime = LocalDateTime.now()
    // do stuff with LocalDateTime
    
  4. Of course, shelling out and using the return value in your script

    final String currentTime = sh(returnStdout: true, script: 'date +%Y-%m-%d').trim()
    

And I'm sure there are other methods, too.