2009-10-31 4 views
1

Я пытаюсь заставить программу вызывать текущую дату, добавить к ней 30 дней, а затем поставить эту дату в виде строки.преобразование даты календаря в строку?

 // Set calendar for due date on invoice gui 
    Calendar cal = Calendar.getInstance(); 

    // Add 30 days to the calendar for the due date 
    cal.add(Calendar.DATE, 30); 
    Date dueDate = cal.getTime(); 
    dueDatestr = Calendar.toString(dueDate); 
+0

В чем проблема? То, что toString() выглядит немного странно. –

ответ

3

И вопрос в том, что?

Если вы хотите отформатировать дату, я предлагаю посмотреть java.text.SimpleDateFormat вместо toString(). Вы можете сделать что-то вроде:

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); 
dueDateStr = dateFormat.format(dueDate); // renders as 11/29/2009 
1

Вы почти у его:

Date dueDate = cal.getTime(); 
String dueDateAsString = dueDate.toString(); 

или

String dueDateAsFormattedString = DateFormat.format(dueDate); 
0

Вы могли бы рассмотреть возможность использования FastDateFormat от Apache достоянию, а не SimpleDateFormat, потому что SimpleDateFormat не является потокобезопасным.

FastDateFormat dateFormat = FastDateFormat.getInstance("MM/dd/yyyy"); 
dueDateStr = dateFormat.format(dueDate); 

Это особенно актуально, если вы хотите использовать статический экземпляр форматирования даты, который является обычным соблазном.

Смежные вопросы