2013-03-18 2 views
0

je la pièce de code suivante dans mon script:question de fuseau horaire avec Date.parse()

Date.parse('10/01/2010 01:01:01') 

Le résultat que je reçois après l'exécution du script est la suivante:

September 30, 2010 22:01:01 

Est-il peut-être un problème avec Date.Parse() ou est-ce que je fais quelque chose de mal?

+0

La date est _formatted_ dans votre fuseau horaire local lorsque vous le sortir. Si vous n'aimez pas cela, affichez-le autrement (vous n'avez pas montré de quelle façon vous utilisez). – CBroe

Répondre

5

Ce n'est pas un problème: il est un feature:

La méthode d'analyse prend une chaîne de date (tel que « 25 décembre 1995 ») et renvoie le nombre de millisecondes depuis le 1er Janvier 1970, 00: 00:00 UTC. Le fuseau horaire local est utilisé pour interpréter les arguments qui ne contiennent pas d'informations de fuseau horaire. [...] Si vous ne spécifiez pas de fuseau horaire, le fuseau horaire local est supposé.

... donc il y a une différence entre:

Date.parse("Thu, 01 Jan 1970 00:00:00"); 

// ... returns 14400000 in timezone GMT-0400, and other values in other 
// timezones, since there is no time zone specifier in the argument. 

... et ...

Date.parse("Thu, 01 Jan 1970 00:00:00 GMT-0400"); 
// ... returns 14400000 no matter the local time zone.