Как конвертировать формат даты в Java? - PullRequest
0 голосов
/ 18 января 2012

У меня есть строка a =" December 2011 "; Существует   до и после нее.Как я могу конвертировать его в: String b = "2011-12-1"

Ответы [ 4 ]

2 голосов
/ 18 января 2012

Использование SimpleDateFormat.

new SimpleDateFormat("yyyy-MM-d").format(new SimpleDateFormat("MMMMM yyyy").parse(str));

2 голосов
/ 18 января 2012

Если это действительно все, что нужно, используйте .replace():

String b = a.replace(" ", "");

В отличие от того, что его имя позволит вам поверить, поскольку существует .replaceAll(), .replace() фактически заменит все вхождений. Разница в том, что .replaceAll() ожидает строку, которая будет скомпилирована как Pattern в качестве аргумента.

1 голос
/ 18 января 2012
String a = " Dezember 2011 ";
SimpleDateFormat sdf = new SimpleDateFormat("MMMMM yyyy");

a = a.replace(" ", "");

Date parse = sdf.parse(a);
SimpleDateFormat outSdf = new SimpleDateFormat("yyyy-MM-d");
String out = outSdf.format(parse);
System.out.println(out);
0 голосов
/ 18 января 2012

Вы используете этот код. Он дает все, что вы хотите вывести. Сначала вы удаляете & nbsp, используя функцию замены, и после этого вам нужно просто проанализировать вашу строку.

 try {
                String a = " December 2011 ";
                a = a.replace(" ", "");
                SimpleDateFormat sdf = new SimpleDateFormat("MMMMM yyyy");
                SimpleDateFormat SdfParser = new SimpleDateFormat("yyyy-MM-dd");

                String date =SdfParser.format(sdf.parse(a)); 
                System.out.println(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
...