Javascript中并没有内置的日期格式化函数,因此JS框架都有自己的实现方法,而在Dojo中,就是dojo.date.locale.format:
dojo.date.locale.format = function(/*Date*/dateObject,/*dojo.date.locale.__FormatOptions?*/options)
dojo.date.locale.forma中有两个参数,第一个是日期,第二个是格式化的参数。
顾名思义,第一个参数就是日期类型的值;
而第二个参数则包括如下部分:
// selector: String
// 可选值为: 'time'或'date' (默认: date 和 time都有)
// formatLength: String
// 可选值:long,short,medium 或者 full (附加有自定义的内容). 默认值 'short'
// datePattern:String
// 值:由y、M、d组成的表达式
// timePattern:String
//值:由h、m、s、S组成的表达式
// am: String
// 值:需要在新字符串中替换am的字符串
// pm: String
//值:需要在新字符串中替换pm的字符串
// locale: String
// 值:语言(en、zh、zh-tw...)
// fullYear: Boolean
// 值:true、false是否总是显示4位的年份,例如datePatter是yy-MM-dd,也会按照yyyy-MM-dd显示
// strict: Boolean
// 值:true,false,是否严格按表达式生成,例如公元前6世纪之类
由于时间问题,例子就不写了,下面这段可供参考一下:
var date = new Date(2006,7,11,55,12,345);
t.is("Friday,August 11,2006",dojo.date.locale.format(date,{formatLength:'full',selector:'date',locale:'en-us'}));
t.is("vendredi 11 ao/xFBt 2006",locale:'fr-fr'}));
t.is("Freitag,11. August 2006",locale:'de-at'}));
t.is("2006/u5E748/u670811/u65E5/u91D1/u66DC/u65E5",locale:'ja-jp'}));
t.is("8/11/06",{formatLength:'short',locale:'en-us'}));
t.is("11/08/06",locale:'fr-fr'}));
t.is("11.08.06",locale:'de-at'}));
t.is("06/08/11",locale:'ja-jp'}));
t.is("6",{datePattern:'E',selector:'date'}));
t.is("12:55 AM",selector:'time',locale:'en-us'}));
t.is("12:55:12",{timePattern:'h:m:s',selector:'time'}));
t.is("12:55:12.35",{timePattern:'h:m:s.SS',selector:'time'}));
t.is("24:55:12.35",{timePattern:'k:m:s.SS',selector:'time'}));
t.is("0:55:12.35",{timePattern:'H:m:s.SS',selector:'time'}));
t.is("0:55:12.35",{timePattern:'K:m:s.SS',selector:'time'}));