0

使用 DateField 组件, selectedDate.getHours 返回为 24:00:00。我希望它返回为 00:00:00。

是否有捷径可寻?

谢谢!

更新:

首先,我在模型中设置了一个变量,该变量等于 DateField 组件的 selectedDate:

model.generalInfo.endDate = endDate_df.selectedDate;

然后我根据该值设置另一个变量并跟踪它:

param.todate = df.format( model.generalInfo.endDate.toString() );

这就是我看到的时间等于 24:00:00

4

2 回答 2

2

你可以尝试类似的东西

  selectedDate.time = selectedDate.time - 24 * 60 * 60 * 60 * 1000

作为 Date.time 表示自 1970 年以来的毫秒数或其他任何时间......你减去 24 小时......

如果它不适合您,您可以创建一个新函数或转换它的 getter,或者您可以创建一个新的 mxml 模块,将 DateField 作为超类,您可以覆盖 getHours 方法。有很多选择可以做到这一点..

于 2012-12-06T21:00:47.430 回答
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

于 2012-12-06T22:46:43.113 回答