我正在努力创建一个时间戳的格式,我想要使用一个脚本的管道在詹金斯。我的代码来自管道:

def cal = Calendar.instance
def dateFormat = 'YYYYMMDD-hhmmss'
def timeZone = TimeZone.getTimeZone('CST')
def timeStamp = cal.time​.format(dateFormat,timeZone)​
println "Timestamp is: ${timeStamp}"
env.BUILD_TIMESTAMP = timeStamp

当我经过詹金斯时,我得到了以下信息:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified field java.util.GregorianCalendar time​
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.unclassifiedField(SandboxInterceptor.java:387)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:371)

我在网上看到过类似的问题,但是把它添加到scriptapproval.xml (重新启动詹金斯)似乎不起作用。

有谁有一种方法可以生成一个与我尝试的格式类似的时间戳?


我想出办法了。我当时在现场time 直接的。如果我换了电话cal.timecal.getTime() 詹金斯表现得很好。我把它合并成一条线,但功能是一样的:

def timeStamp = Calendar.getInstance().getTime().format('YYYYMMdd-hhmmss',TimeZone.getTimeZone('CST'))

感谢那些看了一眼的人。


或使用Date() 格式化的SimpleDateFormat() :

import java.text.SimpleDateFormat

def dateFormat = new SimpleDateFormat("yyyyMMddHHmmss")
def date = new Date()
def timestamp = dateFormat.format(date)

您检查过管理jenkins下的过程中脚本审批页面了吗?在最后,它与编写脚本一样。xml,但是给你一些关于什么应该被批准的信息。

@巴萨埃是的。我查过了。上面没什么可以批准的。

是否需要依赖?