apache-flex 日期字段:selectedDate将小时显示为24:00:00

cld4siwp  于 2022-11-01  发布在  Apache
关注(0)|答案(2)|浏览(225)

对于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的地方

7uhlpewt

7uhlpewt1#

你可以试试

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

作为一个日期。时间代表1970年以来的毫秒或其他时间。。你减去24小时。。
如果它对您不起作用,您可以创建一个新的函数或getter来转换它,或者您可以创建一个新的mxml模块,将DateField作为超类,并且您可以覆盖getHours方法。

bybem2ql

bybem2ql2#

看起来您正在使用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,它具有将日期/时间字符串转换为其区域设置所使用的值的额外好处。

这些类将日期格式化为用户的区域设置(或您指定的区域设置),并以与DateFormatter相同的方式格式化Date对象。

相关问题