2009-03-27 9 views

Répondre

17
import com.adobe.utils.DateUtil; 

var dateString:String = "2009-03-27T16:28:22.540-04:00"; 
var d:Date = DateUtil.parseW3CDTF(dateString); 
trace(d); 
var s:String = DateUtil.toW3CDTF(d); 
trace(s); 
 
[trace] Fri Mar 27 16:28:22 GMT-0400 2009 
[trace] 2009-03-27T20:28:22-00:00 

Turns out poignées DateUtil tout dans le W3C Date and Time spec. Les dates AS3 ne maintiennent pas les millisecondes, mais elles seront simplement supprimées si elles sont disponibles.

Notez que la sortie W3C est convertie en UTC (temps GMT, ou temps Zulu).

+1

C'est vraiment dommage que Cette solution ne fonctionne qu'avec Flex à cause des paquets mx.formatters nécessaires, donc si vous utilisez Flash vous n'avez pas de chance – Luke

+4

Pour l'utiliser sans Flex, vous pouvez copier cette méthode depuis DateUtil.as dans as3corelib et collez-le dans votre propre classe: http://code.google.com/p/as3corelib/source/browse/trunk/src/com/adobe/utils/DateUtil.as –

0

Voici une implémentation: http://blog.flexexamples.com/2008/02/02/parsing-iso-dates-with-flex-and-actionscript/

(ff Désolé seulement ne montre pas le bouton de liaison et je suis trop paresseux pour le faire moi-même.)

+0

Date.parse() ne fonctionne pas avec les formats ISO. Cela renverra null. – Chadwick

+0

Le deuxième lien vers le blog flexexamples est plus proche, bien qu'il ne gère pas n'importe quoi mais UTC (et seulement si spécifié avec un "Z" final par opposition à un décalage de fuseau horaire) Merci d'avoir regardé! – Chadwick

1

fonction Exemple ISO pour convertir au format Date

public function isoToDate(value:String):Date 
    { 
     var dateStr:String = value; 
     dateStr = dateStr.replace(/\-/g, "/"); 
     dateStr = dateStr.replace("T", " "); 
     dateStr = dateStr.replace("Z", " GMT-0000"); 

     return new Date(Date.parse(dateStr)); 
    } 
Questions connexes