La date d'entrée à votre question est la 25 octobre, 2010, tandis que la sortie est le 29 octobre 2010. Bien joué!
De continuer sur cette nit-picking fil de discussion: vos temps sont également totalement différentes et il vous manque les secondes à partir du moment de la sortie.
Maintenant pour la vraie réponse.
Un petit factoid mais d'abord: la norme ISO 8601 sortie en Ruby, c'est similaire à la "combinaison de la date et de l'heure" sortie de ISO 8601 la page Wikipedia.
Vous avez une chaîne de caractères et donc vous aurez besoin pour le convertir en un Time objet que vous pouvez faire avec to_time. Ensuite, c'est simplement une question de faire appel iso8601 sur l'objet pour obtenir la norme ISO 8601 version:
"2010-10-25 23:48:46 UTC".to_time.iso8601
La to_time méthode est une gracieuseté de Rails, tandis que les iso8601 avec l'aimable autorisation de Ruby dans la bibliothèque standard.
Bonne réponse, mais je n'ai pas eu la première partie (c'était censé être de l'humour?)
Putain! vous avez vu à travers ma parcelle pour tromper les gens. =P Merci pour le réponse, je me demande pourquoi ils ne se contentent pas d'écrire que dans la documentation!
Thomas: oui, il était censé être de l'humour. Il a donné une entrée et une sortie de temps qui ne correspondent pas, jamais. Tricksie petit hobbit!
Cela fonctionne, mais bien que sa question m'a demandé comment faire en ruby, il n'a pas supposer qu'il a été dans les rails de l'environnement.
Liées, merci de me pointer à 'to_time' ~ Temps.maintenant.iso8601 formats comme "2010-10-25T23:48:46Z", si vous souhaitez utiliser '+00:00' au lieu de 'Z' (que j'ai eu à un système d'héritage) de Temps.maintenant.to_time.iso8601 apparaît pour ce faire.
Après beaucoup d'expérimentation, je trouve le Temps de la bibliothèque de l'analyseur de mieux que de DateTime, bien que les raisons m'échappent pour le moment. Avec cet avertissement, j'utilise toujours du Temps plutôt que de DateTime pour ce genre de choses, et la documentation de ruby est aussi difficile à analyser pourquoi il en est ainsi,
bon pur ruby solution. Tiens juste à ajouter, si d'origine le temps n'est pas l'UTC, vous souhaitez peut-être ceci: Time.parse("...").utc.iso8601, otherwize vous aurez le temps suffixé avec +03:00 ou autre valeur en fonction du fuseau horaire de l'heure d'origine chaîne est fournie avec. Je veux dire au lieu de Z.
Je pense que vous essayez de nous tromper.
La date d'entrée à votre question est la 25 octobre, 2010, tandis que la sortie est le 29 octobre 2010. Bien joué!
De continuer sur cette nit-picking fil de discussion: vos temps sont également totalement différentes et il vous manque les secondes à partir du moment de la sortie.
Maintenant pour la vraie réponse.
Un petit factoid mais d'abord: la norme ISO 8601 sortie en Ruby, c'est similaire à la "combinaison de la date et de l'heure" sortie de ISO 8601 la page Wikipedia.
Vous avez une chaîne de caractères et donc vous aurez besoin pour le convertir en un
Time
objet que vous pouvez faire avecto_time
. Ensuite, c'est simplement une question de faire appeliso8601
sur l'objet pour obtenir la norme ISO 8601 version:La
to_time
méthode est une gracieuseté de Rails, tandis que lesiso8601
avec l'aimable autorisation de Ruby dans la bibliothèque standard.Après beaucoup d'expérimentation, je trouve le Temps de la bibliothèque de l'analyseur de mieux que de DateTime, bien que les raisons m'échappent pour le moment. Avec cet avertissement, j'utilise toujours du Temps plutôt que de DateTime pour ce genre de choses, et la documentation de ruby est aussi difficile à analyser pourquoi il en est ainsi,
Time.parse("...").utc.iso8601
, otherwize vous aurez le temps suffixé avec+03:00
ou autre valeur en fonction du fuseau horaire de l'heure d'origine chaîne est fournie avec. Je veux dire au lieu deZ
.Remarque: vous devez les convertir (parse) une chaîne de temps en temps l'objet avant d'appliquer le to_time méthode.
Procédure correcte: