001 /** 002 * Implements the Cold Fusion Function gethttptimestring 003 */ 004 package railo.runtime.functions.dateTime; 005 006 import java.text.SimpleDateFormat; 007 import java.util.Date; 008 import java.util.Locale; 009 import java.util.TimeZone; 010 011 import railo.commons.lang.StringUtil; 012 import railo.runtime.PageContext; 013 import railo.runtime.ext.function.Function; 014 import railo.runtime.type.dt.DateTime; 015 import railo.runtime.type.dt.DateTimeImpl; 016 017 public final class GetHttpTimeString implements Function { 018 019 private final static SimpleDateFormat HTTP_TIME_STRING_FORMAT; 020 static { 021 HTTP_TIME_STRING_FORMAT = new SimpleDateFormat("EE, dd MMM yyyy HH:mm:ss zz",Locale.ENGLISH); 022 HTTP_TIME_STRING_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT")); 023 } 024 025 026 private static String toHTTPTimeString(Date date) { 027 synchronized(HTTP_TIME_STRING_FORMAT){ 028 return StringUtil.replace(HTTP_TIME_STRING_FORMAT.format(date),"+00:00","",true); 029 } 030 } 031 032 033 public static String call(PageContext pc) { 034 return toHTTPTimeString(new DateTimeImpl(pc)); 035 } 036 037 public static String call(PageContext pc , DateTime datetime) { 038 return toHTTPTimeString(datetime==null?new DateTimeImpl(pc):datetime); 039 } 040 041 public static String invoke(DateTime datetime) { 042 return toHTTPTimeString(datetime); 043 } 044 045 public static String invoke() { 046 return call(null); 047 } 048 }