使用DateField组件,selectedDate.getHours返回24:00:00。我希望它返回00:00:00。
有一种简单的方法吗?
谢谢!
更新:
首先,我在Model中设置了一个等于DateField组件的selectedDate的变量:
model.generalInfo.endDate = endDate_df.selectedDate;
然后我根据该值设置另一个变量,并将其追踪出来:
param.todate = df.format( model.generalInfo.endDate.toString() );
这是我看到时间等于24:00:00
的地方答案 0 :(得分:2)
你可以试试像
这样的东西 selectedDate.time = selectedDate.time - 24 * 60 * 60 * 60 * 1000
作为Date.time表示自1970年以来的毫秒数或其他......你减去24小时..
如果它不适合您,您可以创建一个新函数或getter来转换它,或者您可以创建一个新的mxml模块,DateField作为超类,您可以覆盖getHours方法。大量选择这样做..
答案 1 :(得分:1)
您似乎正在使用Flex DateFormatter格式化Date
对象。看看这个类的文档,它有一个formatString属性,可以用来控制如何输出日期(或者在这种情况下是时间)。
如果您为DateFormatter
提供包含“H”的格式字符串,则会使用数字范围1-24以24小时格式输出小时。如果格式字符串包含“J”,它将使用范围0-23以24小时格式输出小时。
要获得所需的输出,请在格式字符串中使用“JJ”,以及任何其他项目。例如,输出小时,分钟,秒:
var someDate:Date = new Date(2012, 11, 5);
var df:DateFormatter = new DateFormatter();
df.formatString = "JJ:NN:SS";
var formatted:String = df.format(someDate); // 00:00:00
另外,正如@Flextras所提到的,您可以使用Flash本地化API,它具有将日期/时间字符串转换为其语言环境所使用的值的额外好处。这些是DateTimeFormatter
类:
这些类将日期格式化为用户的语言环境(或您指定的语言环境),并以Date
的方式格式化DateFormatter
个对象。