7
votes

Comment convertir un objet Datetime Rails à une chaîne XML?

J'ai un objet DateTime dans des rails qui diffusent comme celui-ci lorsqu'il est appelé: xxx pré>

Comment puis-je convertir la chaîne de type DateTime XML comme ceci: p>

ruby-1.8.7-p302 > Time.now.convert_to_xml
 => 2010-11-10T16:46:51-08:00


0 commentaires

4 Réponses :


0
votes

Utilisez le Strftime Méthode

Time.now.strftime("your format string")


1 commentaires

to_s ne convient pas à XML. Je viens d'obtenir la même réponse que temps.now mais dans des citations "mercredi 10 16:46:51 -0800 2010"



25
votes

Temps to XML Format: xxx pré>

http: //corelib.rubyonrails.org/classes/time.html#m000281 p>

à analyser (Ruby 1.9 et au-delà): P>

t = Time.now.xmlschema(str)


5 commentaires

On dirait que le temps.xmlschema travaille dans Ruby 1.8.7 aussi. Merci!


@GeekActive, n'oubliez pas de marquer cette réponse comme le accepté . =)


On dirait que time.xmlschema est implémenté comme une extension à la classe de la classe par rails. Ce n'est pas un stock ruby. J'ai mis à jour la réponse.


La méthode avec la filature, bien que Verbose, est nécessaire pour certaines applications XML. E.G., EPUB 3 nécessite z à la fin plutôt qu'à un fuseau horaire numérique.


La version Rails est incorrecte. La spécification XML est XS: DateTime et doit être en UTC sans informations sur le fuseau horaire. Environnement de développement de chargement (Rails 3.2.3) 1.9.3-P125: 001> TIME.NOW.XMLSCHEMA => "2013-05-11T00: 44: 23 + 02: 00" "XS: DateTime , qui est intégré à la spécification des types de données de schéma W3C XML [SCHEMA2], et doit être exprimée sous forme UTC, sans composant TimeZone. "



6
votes

Essayez temps.now.iso8601


2 commentaires

C'est une bonne réponse succincte aussi!


"XS: DateTime, qui est intégré à la spécification des types de données de schéma XML W3C [SCHEMA2], et doit être exprimé sous forme UTC, sans composant TimeZone."



1
votes

Voici une voie pure-ruby: xxx

Vous pouvez obtenir plus de détails sur les différentes options de StrfTime avec: xxx


0 commentaires