我正在寻找一种方法,使用(并且目前坚持使用)Flex 4.1,在Actionscript中获得本周相对于今天的开始。在Java中,我将使用Calendar类通过以下方式执行此操作: -
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.set(Calendar.DAY_OF_WEEK,
1);
return cal.getTime();
我似乎无法找到任何优雅的解决方案 - 我错过了什么?
答案 0 :(得分:1)
有两个同名的班级DateTimeFormatter
。一个是纯ActionScript类,另一个是添加到Flex 4.5的新类,它包含了Actionscript版本。 Flex version为你做了一些繁重的工作。
有一个getFirstWeekday()
方法,它将与您指定的区域设置相对应。
[编辑] 我被带走了,没有具体回答你的问题。我不知道比DateTimeFormatter更优雅的东西。但是从那里你可以使用Date对象来获取当前时间,并获得你想要的东西。
有一些日期实用程序,但我不知道这个特定的解决方案。你在寻找这样的东西:
var timeFormatter:DateTimeFormatter = new DateTimeFormatter(LocaleID.DEFAULT, DateTimeStyle.NONE, DateTimeStyle.SHORT);
var firstDay:int = timeFormatter.getFirstWeekday()
var now:Date = new Date();
var dayDelta:int = now.day - firstDay;
var firstDayInMillis:Number = now.time - (dayDelta * 86400 * 1000);
// you can construct a new Date from here: var first:Date = new Date(firstDayInMillis);