How to Use SimpleDateFormat Class Formating/Parsing Date and Time?
SimpleDateFormat is a concrete class for formatting and parsing
dates in a locale-sensitive manner. SimpleDateFormat allows you to
start by choosing any user-defined patterns for date-time formatting.
DateFormat also provides many class methods for obtaining default
date/time formatters based on the default or a given locale and a number of
formatting styles. The SimpleDateFormat provides more flexiable
custom formats for date time, you can set your own date patterns. The
following document is from Java API Document.
Date and Time Patterns
Date and time formats are specified by date and time pattern strings.
Within date and time pattern strings, unquoted letters from 'A' to
'Z' and from 'a' to 'z' are interpreted as
pattern letters representing the components of a date or time string. Text can
be quoted using single quotes (') to avoid interpretation. "''"
represents a single quote. All other characters are not interpreted; they're
simply copied into the output string during formatting or matched against the
input string during parsing.
The following pattern letters are defined (all other characters from 'A'
to 'Z' and from 'a' to 'z' are
reserved):
.....
Examples
The following examples show how date and time patterns are interpreted in the
U.S. locale. The given date and time are 2001-07-04 12:08:56 local time in the
U.S. Pacific Time time zone.
|
Date and Time Pattern
|
Result
|
"yyyy.MM.dd G 'at' HH:mm:ss z"
| 2001.07.04 AD at 12:08:56 PDT
|
"EEE, MMM d, ''yy"
| Wed, Jul 4, '01
|
"h:mm a"
| 12:08 PM
|
"hh 'o''clock' a, zzzz"
| 12 o'clock PM, Pacific Daylight Time
|
"K:mm a, z"
| 0:08 PM, PDT
|
"yyyyy.MMMMM.dd GGG hh:mm aaa"
| 02001.July.04 AD 12:08 PM
|
"EEE, d MMM yyyy HH:mm:ss Z"
| Wed, 4 Jul 2001 12:08:56 -0700
|
"yyMMddHHmmssZ"
| 010704120856-0700
|
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
| 2001-07-04T12:08:56.235-0700 |
For example,the following code will format the current date time to the same
date time pattern as the output of Date class's toString method.
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
Date now = new Date();
String datetimeStr = now.toString();
System.out.println("1. " + datetimeStr);
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
System.out.println("2. " + format.format(now));
}
}
The output is
1. Fri Jun 27 21:28:16 EDT 2008
2. Fri Jun 27 21:28:16 EDT 2008
The following example shows how to parse date time string by using SimpleDateFormat:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
Date now = new Date();
String datetimeStr = now.toString();
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
try {
Date parseDate = format.parse(datetimeStr);
System.out.println(parseDate.toString());
}
catch (ParseException e) {
;
}
}
}
The output is
Fri Jun 27 21:40:52 EDT 2008