flex - sending - rssitem date format




Le constructeur Flex Date() convertit incorrectement les horodatages Unix argh (3)

Comme il est analysé en millisecondes, il suffit de multiplier la valeur de l'époque par 1000:

trace(new Date(1236268800 * 1000));
// Thu Mar 5 08:00:00 GMT-0800 2009

Cela me tue sérieusement. J'essaie de convertir un horodatage Unix (1236268800, ce qui équivaut à jeu, 05 mars 2009 16:00:00 GMT) à un objet Date dans Flex.

var timestamp:Number = 1236268800;
trace(new Date(timestamp));

Output: Wed Jan 14 23:24:28 GMT-0800 1970

J'ai aussi essayé ceci:

var timestamp:Number = 1236268800;
var date:Date = new Date;
date.time = timestamp;
trace(date);

Output: Wed Jan 14 23:24:28 GMT-0800 1970

Chacune de ces méthodes devrait fonctionner. Qu'est-ce que je fais mal ici?


Dans AS3, le constructeur Date () prend une valeur en millisecondes, tandis que le temps Unix est en secondes. Essaye ça:

var timestamp:Number = 1236268800;
trace(new Date(timestamp * 1000));

http://livedocs.adobe.com/flex/2/langref/Date.html#Date ()

Si vous transmettez un argument de type de données Number, une valeur temporelle est affectée à l'objet Date en fonction du nombre de millisecondes écoulées depuis le 1er janvier 1970 0: 00: 000 GMT, comme spécifié par l'argument solitaire.

Vous devez multiplier votre nombre par 1000.