converting a calendar date to a string?

2019-07-23 09:18发布

问题:

I am trying to get the program to call up the current date, add 30 days to it, and then out put that date as a string.

        // 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);

回答1:

And the question is?

If you want to format your date, I suggest looking at java.text.SimpleDateFormat instead of using toString(). You can do something like:

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


回答2:

You almost have it:

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

or

String dueDateAsFormattedString = DateFormat.format(dueDate);


回答3:

You might want to consider using FastDateFormat from Apache commons, instead of SimpleDateFormat, because SimpleDateFormat is not thread safe.

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

This is especially true if you wanted to use a static instance of the date formatter, which is a common temptation.



回答4:

You can do it easily with a class of mine: https://github.com/knyttl/Maite/wiki/Maite-Date-and-Time

new Time()
    .plus(1, Time.DAY)
    .format("yyyy-MM-dd");