【问题标题】:How to change Groovy Date format如何更改 Groovy 日期格式
【发布时间】:2011-12-21 11:50:58
【问题描述】:

我想把我的日期变成这样的格式: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") 
}

}

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

【问题讨论】:

    标签: date groovy time format


    【解决方案1】:

    为了从字符串中解析出来:

    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
    

    【讨论】:

    • 谢谢,我很接近。打印yourdate 会吐出一个很长的字符串,我认为这是GregorianCalendar 的输出。如何以我想要的格式从中获取仅将日期作为值的变量?即我希望yourdate 打印为2010-10-01
    • 这就是它的打印方式(尝试 print String.format('%tY-%
    • 我想在问题中显示的脚本中使用yourDate。我希望能够做到:yourDate + it.months
    • 另外,如果我希望yourDate 成为当前日期,格式与yyyy-mm-dd 相同,该怎么办?
    • 非常感谢 tolitius :)
    【解决方案2】:

    现在也可以使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多