在对flex DateFormatter进行格式化的时候,默认的formatString="YYYY-MM-DD HH:NN:SS",这样格式化后的时间为2013-01-01 24:00:00 ,如果要将这个时间作为参数传入到后台,在oracle里进行操作的时候,就会报错,oracle会提示“ORA-01850: 小时值必须介于0和23之间”,如何解决这个问题呢?
查询DateFormatter的API,http://livedocs.adobe.com/flex/3_cn/langref/mx/formatters/DateFormatter.html,会看到
J一天中的小时数 (0-23)。
H一天中的小时数 (1-24)。
这样将formatString="YYYY-MM-DD HH:NN:SS",换为formatString="YYYY-MM-DD JJ:NN:SS",就可以啦。不过这样00点是比24少一天的,所以还要做一次加一天的操作才会像原来的时间是一样的。
加一天的代码:
var date:Date = endDate.selectedDate;
var values:Date = new Date(Date.parse(date) + (86400000 * 1));
var dateStr:String= formatQueryDate.format(values);
return dateStr;