Groovy中的每周日期

Yot*_*ray 10 groovy date

我的变量格式如下例所示:

2011-03-07
Run Code Online (Sandbox Code Playgroud)

从他们我想输出一周的日子.例如:

Monday
Run Code Online (Sandbox Code Playgroud)

甚至只是

Mon
Run Code Online (Sandbox Code Playgroud)

我在Groovy工作,有什么想法吗?

ata*_*lor 21

您可以使用Date.parse将字符串转换为日期,然后将其编入索引Calendar.DAY_OF_WEEK以获取特定日期.例:

assert Date.parse("yyyy-MM-dd", "2011-03-07")[Calendar.DAY_OF_WEEK] == Calendar.MONDAY
Run Code Online (Sandbox Code Playgroud)

如果您希望将该日期作为字符串,请尝试使用该Date.format方法.确切的输出取决于您的语言环境:

assert Date.parse("yyyy-MM-dd", "2011-03-07").format("EEE") == "Mon"
assert Date.parse("yyyy-MM-dd", "2011-03-07").format("EEEE") == "Monday"
Run Code Online (Sandbox Code Playgroud)

有关格式化字符串的更多信息,请参阅SimpleDateFormat的文档.

如果您希望为特定区域设置格式化日期,则必须创建SimpleDateFormat对象并传入区域设置对象.

fmt = new java.text.SimpleDateFormat("EEE", new Locale("fr"))
assert fmt.format(Date.parse("yyyy-MM-dd", "2011-03-07")) == "lun."
fmt = new java.text.SimpleDateFormat("EEEE", new Locale("fr"))
assert fmt.format(Date.parse("yyyy-MM-dd", "2011-03-07")) == "lundi"
Run Code Online (Sandbox Code Playgroud)