Apache flex Flex monthUTC索引不同于dateUTC和FullYearUTC

Apache flex Flex monthUTC索引不同于dateUTC和FullYearUTC,apache-flex,date,Apache Flex,Date,我在flex中玩得很开心,出现了一个奇怪的bug。事实证明,这并不是一个真正的bug,而是Flex处理日期的一种有点奇怪的方式。即 dateSelected.selectedDate.fullYearUTC返回4位年份号, dateSelected.selectedDate.dateUTC返回从1到31的天数,而 dateSelected.selectedDate.monthUTC返回从0到11的月数(!!!) 怎么回事?不是所有字段都以相同的方式处理,有什么好的理由吗?我有点猜测,但是我无法找

我在flex中玩得很开心,出现了一个奇怪的bug。事实证明,这并不是一个真正的bug,而是Flex处理日期的一种有点奇怪的方式。即

dateSelected.selectedDate.fullYearUTC
返回4位年份号,
dateSelected.selectedDate.dateUTC
返回从1到31的天数,而
dateSelected.selectedDate.monthUTC
返回从0到11的月数(!!!)

怎么回事?不是所有字段都以相同的方式处理,有什么好的理由吗?我有点猜测,但是我无法找到“为什么”部分


Cheers

Flex使用零基数组。因此,在Flex中包含月份名称的数组

var monthNames:Array=["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
将在
月[0]
为您提供
一月

为了与这个概念保持一致,
date.monthUTC
date.month
返回的月数比您手动编写的月数少一个


我相信许多其他语言也有类似的行为。

Flex使用基于零的数组。因此,在Flex中包含月份名称的数组

var monthNames:Array=["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
将在
月[0]
为您提供
一月

为了与这个概念保持一致,
date.monthUTC
date.month
返回的月数比您手动编写的月数少一个


我相信许多其他语言也有类似的行为。

虽然ActionScript(和许多其他语言)中的日期处理肯定不理想,但实际上有一种可以理解的逻辑:

您必须将Date类的内部工作描述为数组。虽然将年份和日期编号指定给一段时间(将其视为数组在指定索引处的值)),但一周中的某一天、某个月等表示索引编号(将其视为数组的

在flex中,索引号从0开始,因此请尝试在代码中描绘这些数组:

var months:Array = ["January", "February",...];
// months [0] => "January"
// (Date.monthUTC returns the index number)
var daysOfWeek:Array = ["Sunday", "Monday", "Tuesday",...];
// daysOfWeek [2] => "Tuesday"
// (Date.dayUTC returns the index number)
最有趣的是:

var date:Array = [1,2,3,4,...];
// date [0] => 1
// (Date.dateUTC returns the value)
var years:Array = [1970, 1971, 1972,...];
// year[0] => 1970
// (Date.fullYearUTC returns the value)

虽然ActionScript(和许多其他语言)中的日期处理肯定不理想,但实际上有一个可以理解的逻辑:

您必须将Date类的内部工作描述为数组。虽然将年份和日期编号指定给一段时间(将其视为数组在指定索引处的值)),但一周中的某一天、某个月等表示索引编号(将其视为数组的

在flex中,索引号从0开始,因此请尝试在代码中描绘这些数组:

var months:Array = ["January", "February",...];
// months [0] => "January"
// (Date.monthUTC returns the index number)
var daysOfWeek:Array = ["Sunday", "Monday", "Tuesday",...];
// daysOfWeek [2] => "Tuesday"
// (Date.dayUTC returns the index number)
最有趣的是:

var date:Array = [1,2,3,4,...];
// date [0] => 1
// (Date.dateUTC returns the value)
var years:Array = [1970, 1971, 1972,...];
// year[0] => 1970
// (Date.fullYearUTC returns the value)

谢谢你的回答,伙计,我提高了你的两个答案,因为它们都很好,但我选择了weltraumpirat的,因为他更详细。谢谢你的回答,伙计,我提高了你的两个答案,因为它们都很好,但我选择weltraumpirat的,因为他更详细。