我希望在日期时间增加1秒,这样我就可以测试基于日期的分页.我希望从我们的API响应中获取日期,将日期字符串转换为日期,然后将其转换为毫秒,添加一秒,然后转换回日期字符串并在我的下一个API请求中使用它.(声音很长?确实感觉就像!)
当我尝试解析dateTime时,我有问题.以下代码抛出错误:
def c= new date().parse("yyyy-mm-ddThh:mm:ss",lastDate)
log.info "new formatt"+lastDate
log.info c.timeInMillis
Run Code Online (Sandbox Code Playgroud)
错误:groovy.lang.MissingMethodException:没有方法签名:java.util.Date.parse()适用于参数类型:(java.lang.String,groovy.util.slurpersupport.NodeChildren)值:[yyyy-mm- ddThh:mm:ss,2007-01-26T00:00:00]可能的解决方案:parse(java.lang.String),parse(java.lang.String,java.lang.String),wait(),clone() ,any(),use(java.util.List,groovy.lang.Closure)
有关如何实现目标的任何提示?或者它是一种愚蠢的方法?
ata*_*lor 15
听起来像添加秒的方式.为什么不呢:
import groovy.time.TimeCategory
def lastDate = new Date()
use(TimeCategory) {
lastDate = lastDate + 1.second
}
Run Code Online (Sandbox Code Playgroud)
要获得更灵活的日期字符串解析,您可能需要查看JChronic Java库.它可以处理许多不同格式的日期,而不依赖于像SimpleDateFormat类那样的精确模板.以下是使用以下两个示例:
Date.metaClass.'static'.fromString = { str ->
com.mdimension.jchronic.Chronic.parse(str).beginCalendar.time
}
def lastDate = Date.fromString("2007-01-26T00:00:00")
use (TimeCategory) {
100.times {
runTest(lastDate)
lastDate = lastDate + 1.second
}
}
Run Code Online (Sandbox Code Playgroud)
bti*_*nay 10
可能是没有依赖性的最简洁,惯用的groovy解决方案:
Date.parse( "yyyy-MM-dd'T'HH:mm:ss", text ).with { new Date( time + 1000) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22789 次 |
| 最近记录: |