Я пытаюсь заставить программу вызвать текущую дату, добавить к ней 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);
И вопрос?
Если вы хотите отформатировать дату, я предлагаю вместо toString()
java.text.SimpleDateFormat
. Вы можете сделать что-то вроде:
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
dueDateStr = dateFormat.format(dueDate); // renders as 11/29/2009
У вас его почти нет:
Date dueDate = cal.getTime();
String dueDateAsString = dueDate.toString();
или
String dueDateAsFormattedString = DateFormat.format(dueDate);
Вы можете сделать это легко с моим классом: https://github.com/knyttl/Maite/wiki/Maite-Date-and-Time
new Time()
.plus(1, Time.DAY)
.format("yyyy-MM-dd");
Возможно, вы захотите использовать FastDateFormat из сообщества Apache вместо SimpleDateFormat, потому что SimpleDateFormat не является потокобезопасным.
FastDateFormat dateFormat = FastDateFormat.getInstance("MM/dd/yyyy");
dueDateStr = dateFormat.format(dueDate);
Это особенно актуально, если вы хотите использовать статический экземпляр форматирования даты, который является обычным соблазном.