Groovy脚本为时间戳设置时区

Groovy脚本为时间戳设置时区,groovy,groovyws,Groovy,Groovyws,我一直在努力在GroovyScript中设置时区。现在我发现下面的代码返回了我所在位置的实际时间戳 javax.xml.datatype.DatatypeFactory.newInstance() .newXMLGregorianCalendar( GregorianCalendar.getInstance() ).toString()[0..21] + "Z" 现在我需要它返回UTC格式的日期和时间,因此它有主服务器的时区,

我一直在努力在GroovyScript中设置时区。现在我发现下面的代码返回了我所在位置的实际时间戳

javax.xml.datatype.DatatypeFactory.newInstance()
                                  .newXMLGregorianCalendar( GregorianCalendar.getInstance() ).toString()[0..21] + "Z"
现在我需要它返回UTC格式的日期和时间,因此它有主服务器的时区,可以从任何其他位置运行

javax.xml.datatype.DatatypeFactory.newInstance()
                                  .newXMLGregorianCalendar( GregorianCalendar.getInstance() ).toString()[0..21] + "Z"
所有这些都在SoapUi中的GroovyScript测试步骤中运行,它将用作WSDL请求中的变量

注意:这将在Soap项目的自定义属性中用作单个衬里。

解决方案之一:

System.setProperty('user.timezone', 'UTC')

def gc= new GregorianCalendar()
二是:

c = Calendar.instance

c.timeZone = TimeZone.getTimeZone("UTC")
第一个解决方案使用GregorianCalanedar,它易于转换为xml日期。但我认为最好的解决方案是日历


我不测试这些代码!请检查一下

您不能使用类似于
new Date().format(“yyyy-MM-dd't'HH:MM:ss.S'Z',TimeZone.getTimeZone('UTC'))的格式吗?
?您好!TimeZone.setDefault(TimeZone.getTimeZone('UTC'))适用于我,它更改了整个soap会话的时区。在此之后,我只取时间戳javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance()).toString()[0..21]+“Z”