001 /** 002 * Implements the Cold Fusion Function createtime 003 */ 004 package railo.runtime.functions.dateTime; 005 006 import java.util.TimeZone; 007 008 import railo.commons.date.DateTimeUtil; 009 import railo.commons.date.TimeZoneUtil; 010 import railo.runtime.PageContext; 011 import railo.runtime.engine.ThreadLocalPageContext; 012 import railo.runtime.exp.ExpressionException; 013 import railo.runtime.ext.function.Function; 014 import railo.runtime.type.dt.DateTime; 015 import railo.runtime.type.dt.TimeImpl; 016 017 public final class CreateTime implements Function { 018 public static DateTime call(PageContext pc , double hour, double minute, double second) { 019 return _call(pc, hour, minute, second, 0,pc.getTimeZone()); 020 } 021 022 public static DateTime call(PageContext pc , double hour, double minute, double second,double millis) { 023 return _call(pc, hour, minute, second, millis,pc.getTimeZone()); 024 } 025 public static DateTime call(PageContext pc , double hour, double minute, double second,double millis,String strTimezone) throws ExpressionException { 026 return _call(pc, hour, minute, second, millis,strTimezone==null?pc.getTimeZone():TimeZoneUtil.toTimeZone(strTimezone)); 027 } 028 029 030 private static DateTime _call(PageContext pc , double hour, double minute, double second,double millis,TimeZone tz) { 031 // TODO check this looks wrong 032 if(tz==null)tz=ThreadLocalPageContext.getTimeZone(pc); 033 return new TimeImpl( 034 DateTimeUtil.getInstance().toTime(tz,1899,12,30,(int)hour,(int)minute,(int)second,(int)millis,0) 035 ,false); 036 } 037 }