我有这些清单
def day =[1,1,1,1,1,1,1,1,1,1,1,1,1]
def month =[10,9,8,7,6,5,4,3,2,1,12,11]
def year =[2011,2011,2010,2011,2011,2012,2011]
现在我想在一个for循环
中为整个列表做一些这样的事情 def date= new Date(year,month,day)
我该怎么做
谢谢
答案 0 :(得分:3)
当数据紧密耦合时(最好还是使用对象),尽量不要使用单独的集合。
dateNums = [
[1, 10, 2011],
[1, 9, 2011],
// etc.
]
dates = []
dateNums.each {
d = new Date(it[2]-1900, it[1]-1, it[0])
println d
dates.add(d)
}
请注意,Date(year, month, date)
已弃用,您可能应该使用我在上一个问题中链接到的Date
构造方法。
d = new Date().parse('MM/dd/yyyy', "${it[0]}/${it[1]}/${it[2]}")
更好的是,跳过中间步骤。
def getDate(month, day, year) {
new Date().parse('MM/dd/yyyy', "${month}/${day}/${year}")
}
dates = [
getDate(1, 10, 2011),
getDate(1, 9, 2011)
]
dates.each { println it }
答案 1 :(得分:0)
这也应该有效:
def dates = [day,month,year].transpose().collect { d, m, y ->
new Date().parse( 'dd/MM/yyyy', "$d/$m/$y" )
}