1 19 package freecs.util; 20 import java.text.SimpleDateFormat ; 21 import java.util.Locale ; 22 import java.util.TimeZone ; 23 24 import freecs.Server; 25 26 27 33 public class HttpDateParser { 34 public static final String DP_RFC1123 = "EEE, dd MMM yyyy HH:mm:ss zzz"; 35 public static final String DP_RFC1036 = "EEEE, dd-MMM-yy HH:mm:ss zzz"; 36 public static final String DP_ASCTIME = "EEE MMM d HH:mm:ss yyyy"; 37 38 public static final SimpleDateFormat [] formats = { 39 HttpDateParser.constructSdf(DP_RFC1123), 40 HttpDateParser.constructSdf(DP_RFC1036), 41 HttpDateParser.constructSdf(DP_ASCTIME) }; 42 43 47 private static SimpleDateFormat constructSdf(String pattern) { 48 SimpleDateFormat sdf = new SimpleDateFormat (pattern, Locale.US); 49 sdf.setTimeZone(TimeZone.getTimeZone("GMT")); 50 return sdf; 51 } 52 53 54 public static long parseDate(String dateStrg) { 55 if (dateStrg == null) 56 return -1; 57 for (int i = 0; i<formats.length; i++) { 58 try { 59 long val = formats[i].parse(dateStrg).getTime(); 60 Server.log ("HTTP-Date-Parser", "time parsed: " + val, Server.MSG_STATE, Server.LVL_MAJOR); 61 return val; 62 } catch (Exception pe) { 63 continue; 64 } 65 } 66 Server.log("HTTP-Date-Parser", "unable to parse date: " + dateStrg, Server.MSG_STATE, Server.LVL_MAJOR); 67 return -1; 68 } 69 70 private HttpDateParser() { } 71 } 72 | Popular Tags |