我得到了数据库的日期,我需要将其显示为字符串.所以在Flex中我这样做:
public static function dateToString(cDate:Date):String {
return cDate.date.toString()+"."+
cDate.month.toString()+"."+
cDate.fullYear.toString()+" "+
cDate.hours.toString()+":"+
cDate.minutes.toString()+":"+
cDate.seconds.toString();
}
Run Code Online (Sandbox Code Playgroud)
但我得到了例如结果:
13.7.2010 0:0:15
如何用填充0填充日,月,小时,分钟,秒?
而且,我从String回到Date:
DateField.stringToDate(myTextInput.text, "DD.MM.YYYY HH:MM:SS");
Run Code Online (Sandbox Code Playgroud)
它是否正确?我希望有一个Date,我将通过BlazeDS传输到J2EE后端,但我只在数据库中看到一个空值.出了点问题......
最好的祝福.
Rya*_*nch 19
你见过DateFormatter类吗?
例:
import mx.formatters.DateFormatter;
private var dateFormatter:DateFormatter;
private function init():void
{
dateFormatter = new DateFormatter();
dateFormatter.formatString = 'DD.MM.YYYY HH:NN:SS'
}
public function dateToString(d:Date):String
{
return dateFormatter.format(d);
}
public function stringToDate(s:String):Date
{
return dateFormatter.parseDateString(s);
}
Run Code Online (Sandbox Code Playgroud)
看起来有人在编写Flex 3.2的那天睡着了,因为它DateFormatter::parseDateString是一个受保护的功能.看起来他们修正了3.5.
我添加这个是因为stringToDate函数在上面的答案中不起作用,简单的包装器不允许您指定输入字符串格式.实际上不再需要包装器,因为函数现在是静态的,但是你仍然有同样的问题.我建议使用DateField类中的以下静态函数.
//myObject.CreatedDate = "10022008"
var d:Date = DateField.stringToDate(myObject.CreatedDate, "MMDDYYYY");
Run Code Online (Sandbox Code Playgroud)
您可以将String转换为Date with DateFormatter::parseDateString,但此方法受到保护(?).要访问方法,DateFormatter::parseDateString只需编写一个简单的包装器:
import mx.formatters.DateFormatter;
public class DateFormatterWrapper extends DateFormatter
{
public function DateFormatterWrapper()
{
super();
}
public function parseDate(str:String):Date
{
return parseDateString(str);
}
}
Run Code Online (Sandbox Code Playgroud)