J'ai un objet DateTime dans des rails qui diffusent comme celui-ci lorsqu'il est appelé: 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
4 Réponses :
Utilisez le Strftime Méthode
Time.now.strftime("your format string")
to_s ne convient pas à XML. Je viens d'obtenir la même réponse que temps.now code> mais dans des citations "mercredi 10 16:46:51 -0800 2010" code>
Temps to XML Format: http: //corelib.rubyonrails.org/classes/time.html#m000281 p> à analyser (Ruby 1.9 et au-delà): P> t = Time.now.xmlschema(str)
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é B>. =)
On dirait que time.xmlschema code> est implémenté comme une extension à la classe code> de la classe code> 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" code> "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. "
Essayez temps.now.iso8601 code> p>
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."
Voici une voie pure-ruby: Vous pouvez obtenir plus de détails sur les différentes options de StrfTime avec: p>