http://www.studytrails.com/java/date/java-DateFormat-SimpleDateFormat.jsp
java.text.DateFormat - This is an abstract class and provider methods to obtain an instance using a locale or formatting style. Look at the examples below for more details.
java.text.SimpleDateFormat - This class provides methods for parsing (text->date) and formatting (date->text) date in a locale sensitive manner. The parse method allows parsing data in any user defined format. Here are some rules that are helpful :
- For formatting text, if the number of repeating pattern letters is 4 or more, then the full form is used, else abbreviation is used.
- for formatting digits, the number of repeating pattern letters determines the minumum number of digits. if the value is less than this then the numbers are padded.
- For month if the number of pattern letters is three or more a text value is used for month, otherwise a number value is used.
Create Instances of DateFormat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
// create a date object for testing
Date date =
new
Date();
// create a date instance using default style
DateFormat format = DateFormat.getDateInstance();
System.out.println(format.format(date));
// 29 Jul, 2013
// create a dateinstance using short style
format = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(format.format(date));
// 29/7/13
// create a dateinstance using medium style (Default)
format = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(format.format(date));
// 29 Jul, 2013
// create a dateinstance using full style (Default)
format = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(format.format(date));
// Monday, 29 July, 2013
// create a dateinstance using long style (Default)
format = DateFormat.getDateInstance(DateFormat.LONG);
System.out.println(format.format(date));
// 29 July, 2013
// create time instance - default
format = DateFormat.getTimeInstance();
System.out.println(format.format(date));
// 8:24:59 PM
// create time instance - short
format = DateFormat.getTimeInstance(DateFormat.SHORT);
System.out.println(format.format(date));
// 8:26 PM
// create time instance - medium
format = DateFormat.getTimeInstance(DateFormat.MEDIUM);
System.out.println(format.format(date));
// 8:26:21 PM
// create time instance - full
format = DateFormat.getTimeInstance(DateFormat.FULL);
System.out.println(format.format(date));
// 8:26:21 PM IST
// create time instance - long
format = DateFormat.getTimeInstance(DateFormat.LONG);
System.out.println(format.format(date));
// 8:26:21 PM IST
// create date time instance - default.
format = DateFormat.getDateTimeInstance();
System.out.println(format.format(date));
// 29 Jul, 2013 8:27:22 PM
// create date time instance - specify format and locale.
format = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.GERMAN);
System.out.println(format.format(date));
// Montag, 29. Juli 2013 20:57 Uhr IST
|
Print Date in different timezone (e.g UTC)
1
2
3
|
format = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
format.setTimeZone(TimeZone.getTimeZone(
"UTC"
));
System.out.println(format.format(date));
// Monday, 29 July, 2013 3:29:45 PM UTC
|
Parse date string (including ISO 8601 format)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
try
{
// parsing date yyyy-MM-dd HH:mm:ss
SimpleDateFormat simpleFormat = (SimpleDateFormat) DateFormat.getDateInstance();
simpleFormat.applyPattern(
"yyyy-MM-dd HH:mm:ss"
);
// parse date 2013-04-12 10:02:12
date = simpleFormat.parse(
"2013-04-12 10:02:12"
);
System.out.println(date);
// Fri Apr 12 10:02:12 IST 2013
// parsing "1 April 2013 at 10:00 AM EST"
simpleFormat.applyPattern(
"dd MMMMM yyyy 'at' HH:mm a z"
);
date = simpleFormat.parse(
"1 April 2013 at 10:00 AM EST"
);
System.out.println(date);
// Mon Apr 01 20:30:00 IST 2013
System.out.println(simpleFormat.getTimeZone().getID());
// America/New_York
// parsing 1-Apr-13 23:22:00+500
simpleFormat.applyPattern(
"dd-MMM-yy HH:mm:ssZ"
);
date = simpleFormat.parse(
"1-Apr-13 23:22:00+0500"
);
format.setTimeZone(simpleFormat.getTimeZone());
System.out.println(format.format(date));
// Monday, 1 April, 2013
// 2:22:00 PM EDT
// parse 2013-07-29T18:00:00-04:00 ISO 8601 format
simpleFormat.applyPattern(
"yyyy-MM-dd'T'HH:mm:ssXXX"
);
date = simpleFormat.parse(
"2013-07-29T18:00:00-04:00"
);
format.setTimeZone(simpleFormat.getTimeZone());
System.out.println(format.format(date));
//Monday, 29 July, 2013 6:00:00 PM EDT
}
catch
(Exception e) {
e.printStackTrace();
}
|