Groovy 升级到SoapUI Pro 3.3.2-日期问题

Groovy 升级到SoapUI Pro 3.3.2-日期问题,groovy,soapui,Groovy,Soapui,我将SoapUI Pro升级到3.3.2版,现在日期格式出现问题。 当我运行此代码时: def startDate=new Date() def logg=startDate.format(“HH:mm:ss.S”,TimeZone.getTimeZone('CET')) 此错误引发: groovy.lang.MissingMethodException:没有方法的签名:java.util.Date.format()适用于参数类型:(字符串,sun.util.calendar.ZoneInfo)

我将SoapUI Pro升级到3.3.2版,现在日期格式出现问题。 当我运行此代码时:

def startDate=new Date()

def logg=startDate.format(“HH:mm:ss.S”,TimeZone.getTimeZone('CET'))

此错误引发:

groovy.lang.MissingMethodException:没有方法的签名:java.util.Date.format()适用于参数类型:(字符串,sun.util.calendar.ZoneInfo)值:[HH:mm:ss.S,sun.util.calendar.ZoneInfo[id=“CET”,offset=3600000,dstssavings=3600000,useDaylight=true,transitions=137,lastRule=java.util.SimpleTimeZone[id=CET,offset=3600000,dstSaves=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDayOfWeek=1,startDayOfWeek=1,startTime=7200000,StartTimeMemode=1,endMode=2,endMonth=9,endDayOfWeek=1,endTime=7200000,endTimeMode=1]]可能的解决方案:stream(),toYear(),from(java.time.Instant)第15行错误


我做错了什么?

您应该可以访问
java.time
库,这些库通常优于
java.util.Date
。如果您的其他工作不太麻烦,我建议切换

如果必须使用
java.util.Date
,则需要一个SimpleDataFormat:

import java.text.SimpleDateFormat

sdf = new SimpleDateFormat("HH:mm:ss.S")
sdf.setTimeZone(TimeZone.getTimeZone("CET"))
println sdf.format(new Date())

==> 06:01:31.299
使用
java.time
中的
ZoneDateTime

import java.time.ZoneId
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter

i = ZonedDateTime.now(ZoneId.of("CET"))
println i.format(DateTimeFormatter.ofPattern("HH:mm:ss.S"))
println i.format(DateTimeFormatter.ofPattern("HH:mm:ss.SSS"))

==> 06:01:31.2
==> 06:01:31.299
请注意,中的
S
模式已从
毫秒
更改为
秒分数

就个人而言,最清晰的选项是使用
java.time.Instant

import java.time.Instant
import java.time.ZoneId
import java.time.format.DateTimeFormatter

println Instant.now()
        .atZone(ZoneId.of("CET"))
        .format(DateTimeFormatter.ofPattern("HH:mm:ss.SSS"))

==> 06:12:22.916

如何向SimpleDayFormatter对象添加1天?还有一个问题,如何获取ISODateTimeFormat?示例:2020-10-16T11:00:00.000+02:00@user3624378你应该把这些问题作为新问题来问。但是,请注意,它们可能会作为重复问题关闭,因为它们已经被问过并回答过了。也就是说,如果你这样搜索它们,你应该你可以找到一些结果:)当然可以-我已经用1天和isoformat解决了。谢谢你的回复:-)