Groovy / Grails日期课程 - 获取每月的日期

时间:2009-09-06 13:28:14

标签: grails groovy

目前我正在使用以下代码来获取Groovy中的年,月,日,小时和分钟:

Date now = new Date()
Integer year = now.year + 1900
Integer month = now.month + 1
Integer day = now.getAt(Calendar.DAY_OF_MONTH) // inconsistent!
Integer hour = now.hours
Integer minute = now.minutes
// Code that uses year, month, day, hour and minute goes here

在这个月中使用getAt(Calendar.DAY_OF_MONTH)似乎有点不一致。有没有更短的方法来获得该月的哪一天?

5 个答案:

答案 0 :(得分:11)

如果您在代码中添加以下内容,则应将该月的日期指定为整数日:

Integer day = now.date

这是一个独立的例子:

def now = Date.parse("yyyy-MM-dd", "2009-09-15")
assert 15 == now.date

答案 1 :(得分:7)

这些线路都不是垃圾吗? 以下两行在groovysh

中完成工作
date = new Date()
date.getAt(Calendar.DAY_OF_MONTH)

要在真实代码中使用它,而不是在控制台中使用

def date = new Date()
def dayOfMonth = date.getAt(Calendar.DAY_OF_MONTH)

答案 2 :(得分:2)

你这样做是唯一的方法。 java日期对象存储月份和日期,但不存储任何信息,例如给定月份的持续时间或月份的当天。您需要使用Calendar类来查找大量此类信息。

答案 3 :(得分:1)

这个版本相当简洁:

Calendar.instance.get(Calendar.DAY_OF_MONTH)

答案 4 :(得分:0)

您可以从Groovy中的Date获取该月中的某一天:

​Date date = new Date()
int dayOfMonth = date[Calendar.DAY_OF_MONTH]