如何更改Groovy日期格式

时间:2011-11-03 19:30:37

标签: date groovy time format

我想让我的日期变成这样的格式:2010-10-01

我该怎么做?

另外,我从另一个问题中抓住了这个问题:

use (groovy.time.TimeCategory) {

Date date = Date.parse("dd-MMM-yyyy", "15-Mar-2011")

def months = (0..11).collect { 
    (date + it.months).format("MMM/yyyy") 
}

}

如何将此脚本的输出更改为上面指定的格式?感谢:)

2 个答案:

答案 0 :(得分:3)

为了从字符串解析出来:

Date.parse( "yyyy-M-d", "2010-10-01" )

为了格式化您已有的日期:

def yourDate= new GregorianCalendar( 2010, Calendar.OCTOBER, 1 )

assert String.format('%tY-%<tm-%<td', yourDate) == '2010-10-01'

编辑(回答评论)

groovy:000> yourDate= new GregorianCalendar( 2010, Calendar.OCTOBER, 1 )
===> java.util.GregorianCalendar[...]
groovy:000> print String.format('%tY-%<tm-%<td', yourDate)
2010-10-01===> null
groovy:000>

及其后退:

groovy:000> Date.parse( "yyyy-M-d", String.format('%tY-%<tm-%<td', yourDate) )
===> Fri Oct 01 00:00:00 EDT 2010

当前日期:

groovy:000> yourDate = Calendar.instance
===> java.util.GregorianCalendar[..]
groovy:000> print String.format('%tY-%<tm-%<td', yourDate) 
2011-11-03===> null

答案 1 :(得分:0)

这现在也可以使用:

def yourDate = new GregorianCalendar( 2010, Calendar.OCTOBER, 1 )
assert yourDate.format('yyyy-MM-dd') == '2010-10-01'