在Java中将日期,月份和年份列表更改为DATE

时间:2011-11-19 16:19:39

标签: java groovy

我有这些清单

   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)       

我该怎么做

谢谢

2 个答案:

答案 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" )
}