Java регулярное выражение для извлечения формата даты в месяц и год - PullRequest
1 голос
/ 30 июня 2011

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

Июнь-2008

Июль-2008

Март-2010

Могу ли я узнать, что такоерегулярное выражение Java для извлечения любого значения месяца и года в отдельную строку каждый.Здесь в качестве разделителя используется знак «-»

Любые значения от начала до конца знака «-» - это месяц, все, что после знака «-» - это год.

Вот чего я хотел бы достичь

String m = March   
String y = 2010

Спасибо всем за помощь!

Ответы [ 2 ]

6 голосов
/ 30 июня 2011

Не используйте регулярные выражения. Используйте String#split():

String[] parts = "June-2008".split("-", 2); // or .split("-")
String m = parts[0]; // "June"
String y = parts[1]; // "2008"

Еще лучше, используйте SimpleDateFormat, и у вас будет правильный Date для работы с:

DateFormat df = new SimpleDateFormat("M-y");
Date myDate = df.parse("June-2008");
0 голосов
/ 30 июня 2011

Я хочу расширить ответ, заданный Мэтт Болл .Если вы хотите разбить эту строку и хотите использовать ее, отличную от String#split(), вы можете использовать StringUtils из Apache Commons Lang .Он имеет различные методы String.

Пример:

String strDate = "June-2008";
String[] parts = StringUtils.split(strDate, '-');
String month = parts[0]; // "June"
String year = parts[1]; // 2008

Также, если вы хотите получить java.util.Date объект, тогда Joda Time может вам помочь.Лично я предпочитаю этот API, а не java.util.Date, так как он гораздо более богатый, простой в использовании, менее пронумерованный.

Теперь мы можем управлять этой строкой как:

String strDate = "June-2008";
DateTimeFormatter formatter = DateTimeFormat.forPattern("MMMM-yyyy");
DateTime dateTime = formatter.parseDateTime(strDate); // parse it
Date javaDate = dateTime.toDate(); // a java.util.Date object
int year = dateTime.getYear(); // 2008
String month = dateTime.month().getAsText(); // June

Надеюсь, что это поможет вам.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...