2011-03-07 225 views
7

我有一個格式類似於下面的例子變量:日期星期幾在Groovy

2011-03-07 

,並從他們我要輸出的一週中的一天。例如:

Monday 

甚至只是

Mon 

我在Groovy我的工作,任何想法?

回答

19

您可以使用Date.parse將字符串轉換爲日期,然後使用Calendar.DAY_OF_WEEK對其進行索引以獲取特定日期。例如:

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

如果您希望當天爲字符串,請嘗試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" 

有關格式化字符串的詳細信息請參見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" 
0
new SimpleDateFormat('E').format new SimpleDateFormat('yyyy-MM-dd').parse('2011-03-07') 
0
new SimpleDateFormat('E').format Date.parse("10-jan-2010") 

整潔我