该groovy-dateutil
模块支持使用 Java 的经典Date
和Calendar
类的许多扩展。
您可以使用类中的常量字段编号访问 Date
或Calendar
使用普通数组索引表示法的属性,Calendar
如以下示例所示:
// 导入常量
import static java.util.Calendar.*
def cal = Calendar.instance
// 设置日历的年月
cal[YEAR] = 2000
cal[MONTH] = JANUARY
cal[DAY_OF_MONTH] = 1
// 访问日历的星期几
assert cal[DAY_OF_WEEK] == SATURDAY
Groovy 支持实例之间的算术运算和迭代Date
,Calendar
如以下示例所示:
def utc = TimeZone.getTimeZone('UTC')
Date date = Date.parse("yyyy-MM-dd HH:mm", "2010-05-23 09:01", utc)
def prev = date - 1
def next = date + 1
def diffInDays = next - prev
assert diffInDays == 2
int count = 0
prev.upto(next) { count++ }
assert count == 3
您可以将字符串解析为日期,并将日期输出为格式化字符串:
def orig = '2000-01-01'
def newYear = Date.parse('yyyy-MM-dd', orig)
assert newYear[DAY_OF_WEEK] == SATURDAY
assert newYear.format('yyyy-MM-dd') == orig
assert newYear.format('dd/MM/yyyy') == '01/01/2000'
您还可以根据现有日期或日历创建新的日期或日历:
def newYear = Date.parse('yyyy-MM-dd', '2000-01-01')
def newYearsEve = newYear.copyWith(
year: 1999,
month: DECEMBER,
dayOfMonth: 31
)
assert newYearsEve[DAY_OF_WEEK] == FRIDAY