UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

83 lines (73 loc) 5.75 kB
dojo.provide("dojox.date.tests.timezoneFormatting"); dojo.require("dojox.date.timezone"); dojo.require("dojo.date"); tests.register("dojox.date.tests.timezoneFormatting", [ { name: "timezone format", setUp: function(){ var partLocaleList = ["en-us", "fr-fr", "es", "de-at", "ja-jp", "zh-cn"]; dojo.forEach(partLocaleList, function(locale){ dojo.requireLocalization("dojo.cldr", "gregorian", locale); }); }, runTest: function(t){ var date = new Date(1155257712345); // This translates to: // GMT Friday, August 11, 2006 at 00:55:12 GMT // Denver Thursday, August 10, 2006 at 6:55:12 PM MDT // Anchorage Thursday, August 10, 2006 at 4:55:12 PM AKDT // Jerusalem Friday, August 11, 2006 at 3:55:12 AM IDT // Sydney Friday, August 11, 2006 at 10:55:12 AM EST // Tokyo Friday, August 11, 2006 at 9:55:12 AM JST // Shanghai Friday, August 11, 2006 at 8:55:12 AM CST // Paris Friday, August 11, 2006 at 2:55:12 AM CEST // Vienna Friday, August 11, 2006 at 2:55:12 AM CEST // Madrid Friday, August 11, 2006 at 2:55:12 AM CEST ////////////////////// // Custom Selector: var selectorOpts = {formatLength: "long", datePattern: "EEEE, MMMM d, y", timePattern: "HH:mm:ss z", locale: "en-us"}; doh.is("Friday, August 11, 2006 at 00:55:12 GMT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'GMT'}))); doh.is("Thursday, August 10, 2006 at 18:55:12 MDT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'America/Denver'}))); doh.is("Thursday, August 10, 2006 at 16:55:12 AKDT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'America/Anchorage'}))); doh.is("Friday, August 11, 2006 at 03:55:12 IDT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'Asia/Jerusalem'}))); doh.is("Friday, August 11, 2006 at 10:55:12 EST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'Australia/Sydney'}))); doh.is("Friday, August 11, 2006 at 09:55:12 JST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'Asia/Tokyo'}))); doh.is("Friday, August 11, 2006 at 08:55:12 CST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'Asia/Shanghai'}))); doh.is("Friday, August 11, 2006 at 02:55:12 CEST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone: 'Europe/Madrid'}))); ////////////////////// // Full Selectors: // New York (in en-us) doh.is("Thursday, August 10, 2006 at 8:55:12 PM EDT", dojo.date.locale.format(date, {formatLength:'full',locale:'en-us',timezone:'America/New_York'})); // Tokyo (in ja-jp) doh.is("2006\u5e748\u670811\u65e5\u91d1\u66dc\u65e5 9\u664255\u520612\u79d2 JST", dojo.date.locale.format(date, {formatLength:'full',locale:'ja-jp',timezone:'Asia/Tokyo'})); // Shanghai (in zh-cn) doh.is("2006\u5e748\u670811\u65e5\u661f\u671f\u4e94CST\u4e0a\u53488:55:12", dojo.date.locale.format(date, {formatLength:'full',locale:'zh-cn',timezone:'Asia/Shanghai'})); // Paris (in fr-fr) doh.is("vendredi 11 août 2006 02:55:12 CEST", dojo.date.locale.format(date, {formatLength:'full',locale:'fr-fr',timezone:'Europe/Paris'})); // Vienna (in de-at) doh.is("Freitag, 11. August 2006 02:55:12 CEST", dojo.date.locale.format(date, {formatLength:'full',locale:'de-at',timezone:'Europe/Vienna'})); // Madrid (in es) doh.is("viernes, 11 de agosto de 2006 02:55:12 CEST", dojo.date.locale.format(date, {formatLength:'full',locale:'es',timezone:'Europe/Madrid'})); ////////////////////// // Tricky Dates: date = new Date(1225605599000); // 1 second before New York goes off DST - NY and LA are 3 hours apart selectorOpts = {formatLength: "full", locale: "en-us"}; doh.is("Sunday, November 2, 2008 at 1:59:59 AM EDT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/New_York'}))); doh.is("Saturday, November 1, 2008 at 10:59:59 PM PDT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/Los_Angeles'}))); date = new Date(1225605600000); // New York goes off DST - NY and LA are 2 hours apart doh.is("Sunday, November 2, 2008 at 1:00:00 AM EST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/New_York'}))); doh.is("Saturday, November 1, 2008 at 11:00:00 PM PDT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/Los_Angeles'}))); date = new Date(1225616400000); // LA goes off DST - NY and LA are 3 hours apart again doh.is("Sunday, November 2, 2008 at 4:00:00 AM EST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/New_York'}))); doh.is("Sunday, November 2, 2008 at 1:00:00 AM PST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/Los_Angeles'}))); date = new Date(1257062399000); // Denver on DST - Denver is 1 hr ahead of Phoenix doh.is("Sunday, November 1, 2009 at 1:59:59 AM MDT", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/Denver'}))); doh.is("Sunday, November 1, 2009 at 12:59:59 AM MST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/Phoenix'}))); date = new Date(1257062400000); // Denver off DST - Denver is same time as Phoenix doh.is("Sunday, November 1, 2009 at 1:00:00 AM MST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/Denver'}))); doh.is("Sunday, November 1, 2009 at 1:00:00 AM MST", dojo.date.locale.format(date, dojo.delegate(selectorOpts, {timezone:'America/Phoenix'}))); } } ] );