1 package org.columba.calendar.parser; 19 20 import java.text.DateFormat ; 21 import java.text.ParseException ; 22 import java.text.SimpleDateFormat ; 23 import java.util.Calendar ; 24 import java.util.Date ; 25 import java.util.TimeZone ; 26 27 import net.fortuna.ical4j.util.TimeZones; 28 29 public class DateParser { 30 31 private static final String DEFAULT_PATTERN = "yyyyMMdd'T'HHmmss"; 32 33 private static final String UTC_PATTERN = "yyyyMMdd'T'HHmmss'Z'"; 34 35 38 private static DateFormat defaultFormat = new SimpleDateFormat ( 39 DEFAULT_PATTERN); 40 41 44 private static DateFormat utcFormat = new SimpleDateFormat (UTC_PATTERN); 45 { 46 utcFormat.setTimeZone(TimeZone.getTimeZone(TimeZones.UTC_ID)); 47 } 48 49 public DateParser() { 50 super(); 51 } 52 53 public static String createStringFromCalendar(Calendar calendar) { 54 return DateFormat.getInstance().format(calendar.getTime()); 55 } 56 57 public static String createDateStringFromCalendar(Calendar calendar) { 58 long millis = calendar.getTimeInMillis(); 59 Date date = new Date (millis); 60 StringBuffer b = new StringBuffer (utcFormat.format(date)); 61 62 return b.toString(); 67 68 } 69 70 public static Calendar createCalendarFromDateString(String dateString) { 71 72 if (dateString == null) 73 throw new IllegalArgumentException ("dateString == null"); 74 75 if (dateString.length() == 0) 76 throw new IllegalArgumentException ("dateString.length() == 0"); 77 78 long time = -1; 79 try { 80 time = utcFormat.parse(dateString).getTime(); 81 } catch (ParseException pe) { 82 defaultFormat.setTimeZone(TimeZone.getDefault()); 83 try { 84 time = defaultFormat.parse(dateString).getTime(); 85 } catch (ParseException e) { 86 e.printStackTrace(); 87 } 88 } 89 90 if (time == -1) 91 return null; 92 Calendar cal = Calendar.getInstance(); 93 cal.setTimeInMillis(time); 94 return cal; 95 96 } 97 98 public static Calendar createCalendarFromString(String str) { 99 if (str == null) 100 throw new IllegalArgumentException ("str == null"); 101 102 if (str.length() == 0) 103 throw new IllegalArgumentException ("str.length() == 0"); 104 105 Calendar c = Calendar.getInstance(); 106 107 try { 108 Date d = DateFormat.getInstance().parse(str); 109 c.setTime(d); 110 } catch (ParseException e) { 111 e.printStackTrace(); 112 } 113 114 return c; 115 } 116 117 } 118 | Popular Tags |