2010-08-24 11 views
2

Est-ce que quelqu'un sait comment obtenir actionscript pour afficher une valeur de date nulle '000: 00: 00T00: 00: 00'? J'appelle un service Web qui attend des champs de date dans le xml SOAP. J'ai besoin de certaines de ces dates pour sérialiser comme nul et je ne peux pas voir comment produire null. La valeur la plus proche que je peux obtenir est '1899-11-30T00: 00: 00Z'. Ci-dessous le code que j'utilise:Flex - Date de sérialisation

var dateStr: String = "0000-00-00T00: 00: 00+"; var emptyDate: Date = DateUtil.parseW3CDTF (dateStr); newReqData.DateTimeInit = emptyDate;

+0

Quel est le type de DateTimeInit? N'existe-t-il pas un moyen d'initialiser autrement qu'en passant une Date (qui est à peine définie sur 0000 ...) –

+0

Le type est Date. Le problème que j'ai n'est pas avec le formatage, c'est avec la sérialisation. Je veux que l'appel SOAP rende la date NULL universelle, que je crois être '0000-00-00T00: 00: 00'. Ma mise en œuvre .Net de cet appel de service Web rend cette valeur dans la publication XML. L'implémentation Flex ne fonctionne pas. Il rend '1899-11-30T00: 00: 00Z'. Donc, le résultat final est que je reçois une date de '11/30/1899 'dans la base de données qui n'est pas souhaitable. Avec l'implémentation .Net, j'obtiens une belle valeur NULL dans la base de données. – Jim

Répondre

0

Vous pouvez probablement le faire avec un formateur de date. Vous devrez créer un objet Date, mais si vous le transmettez à DateFormatter, vous pouvez définir le format à peu près comme vous le souhaitez. Voici la référence et je vous recommande de regarder le "Autre texte" zone:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateFormatter.html

+0

Le problème que je rencontre n'est pas avec le formatage, c'est avec la sérialisation. Je veux que l'appel SOAP rende la date NULL universelle, que je crois être '0000-00-00T00: 00: 00'. Ma mise en œuvre .Net de cet appel de service Web rend cette valeur dans la publication XML. L'implémentation Flex ne fonctionne pas. Il rend '1899-11-30T00: 00: 00Z'. Donc, le résultat final est que je reçois une date de '11/30/1899 'dans la base de données qui n'est pas souhaitable. Avec l'implémentation .Net, j'obtiens une belle valeur NULL dans la base de données. – Jim

+0

J'ai déjà rencontré des problèmes de conversion de type Date avec .Net. Beaucoup d'entre eux viennent en fait de la date de début que chaque système (.Net et Flex) utilise comme base. Je n'ai jamais rencontré un besoin de passer un objet date NULL (et je ne peux pas vraiment penser à comment/pourquoi je devrais le faire). Si votre .Net insère une valeur NULL dans la base de données, peut-être la passer comme une valeur NULL de Flex n'est pas la meilleure approche. Soit cela ou vous pouvez vérifier la valeur de 1899 et simplement le gérer côté serveur. – Shawn

+0

Vous pouvez également essayer de transmettre une chaîne de Flex et de l'analyser dans un serveur de date. Juste par curiosité, si la valeur est NULL de Flex, pourquoi la passez-vous? – Shawn

0

var d: Date = new Date(); d.setTime (-62167226400000); Alert.show (d.toString());

ou comme dit Shawn Yale, lire this.