Дата до дня недели в Groovy - PullRequest
10 голосов
/ 08 марта 2011

У меня есть переменные, которые отформатированы, как в следующем примере:

2011-03-07

и из них я хочу вывести день недели.Например:

Monday

или даже просто

Mon

Я работаю в Groovy, есть идеи?

Ответы [ 3 ]

21 голосов
/ 08 марта 2011

Вы можете использовать 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"
1 голос
/ 08 марта 2011
new SimpleDateFormat('E').format Date.parse("10-jan-2010")

аккуратнее для меня

0 голосов
/ 08 марта 2011
new SimpleDateFormat('E').format new SimpleDateFormat('yyyy-MM-dd').parse('2011-03-07')
...