Форматирование даты Java? - PullRequest
4 голосов
/ 05 января 2009

Я хочу прочитать дату в формате ГГГГ-ММ-ДД.

Но если я введу дату, скажем, например, 2008-1-1, я хочу прочитать ее как 2008-01-01.

Кто-нибудь может мне помочь? Заранее спасибо

Ответы [ 4 ]

11 голосов
/ 05 января 2009

Или используйте намного лучше Joda Time lib.

    DateTime dt = new DateTime();
    System.out.println(dt.toString("yyyy-MM-dd"));

    // The ISO standard format for date is 'yyyy-MM-dd'
    DateTimeFormatter formatter = ISODateTimeFormat.date();
    System.out.println(dt.toString(formatter));
    System.out.println(formatter.print(dt));

API даты и календаря ужасен.

7 голосов
/ 05 января 2009

Решение Adeel прекрасно, если вам нужно использовать встроенную обработку даты / времени в Java, но лично я бы предпочел использовать Joda Time . Когда дело доходит до форматов, основным преимуществом Joda Time является то, что средство форматирования не имеет состояния, поэтому вы можете безопасно делить его между потоками. Пример кода:

DateTimeFormatter parser = DateTimeFormat.forPattern("YYYY-M-D");
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-DD");

DateTime dt = parser.parseDateTime("2008-1-1");
String formatted = formatter.print(dt); // "2008-01-01"
7 голосов
/ 05 января 2009

Использовать SimpleDateFormat .

[Изменено]

Несколько примеров кодов .

3 голосов
/ 05 января 2009
import java.text.*;

public class Test
{

    public static void main(String args[])
    {
        try
        {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD");  
            System.out.println(sdf.parse(args[0]).toString());
        }
                catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

Это работает нормально, независимо от того, пишете ли вы в качестве аргумента "2008-1-1" или "2008-01-01".

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