[RUBY] Dans Time.strptime,% j (date totale de l'année) est

Je devais maintenir le code de quelqu'un d'autre, et quand j'ai suivi le code, c'était un problème de convertir la date % j en heure UNIX.

Puis, quand j'ai été dégoûté et que j'ai cherché " ruby mais strptime?", Bingo !!

un problème est survenu

Testez avant de remplacer.

Exécutez le code suivant

$ ruby -e 'require "time" ; p Time.strptime("2003,070,12:21:51 JST", "%Y,%j,%H:%M:%S %z").to_i'
1041391311
# ↑ 2003/01/01 12:21:51 JST

un problème est survenu.

Hein? % J Pouvez-vous l'interpréter?

Je n'ai pas pu obtenir de réponse même si je regardais Gugu [^ 1]

[^ 1]: C'est spécial d'utiliser % j en premier lieu ...

Essayez différentes choses ...

Conclusion

Le .strptime de la classe Time (module?) De l'ancien ruby ne semble pas interpréter% j [^ 2]

Lors de la vérification, «2.7.1p83» était OK [^ 3]

[^ 2]: Donc, en ce qui concerne le remplacement du code, il y a divers problèmes avec l'utilisation de DateTime, donc à la fin, sous la forme d'incorporer le code créé par vous-même pour la vérification ,,,

[^ 3]: 2.6.3p62 est OK.

Vérification

Exécutez le code suivant avec «1.9.2p290», «2.0.0p481», «2.7.1p83», respectivement.

test.rb


require 'date'
require 'time'

#Fonction auto-fabriquée pour le contrôle
def manu(t)
  arr = t.split(/[,: ]/).map(&:to_i)
  Time.mktime(arr[0],1,1,arr[2],arr[3],arr[4]) + ( arr[1] - 1) * 24 * 60 * 60
end

str = "2003,070,12:21:51 JST"
# DateTime.Le résultat de strptime
p DateTime.strptime(str, "%Y,%j,%H:%M:%S %z").strftime("%s").to_i
#Résultat d'une fonction auto-fabriquée
p ( manu str ).to_i
# Timme.Le résultat de strptime
p Time.strptime(str, "%Y,%j,%H:%M:%S %z").to_i

Dans «1.9.2» et «2.0.0», «Time.strptime» n'interprète pas «% j». DateTime.strptime l'interprétera.

shell-session:1.9.2p290,2.0.0p481


$ ruby test.rb
1047352911
1047352911
1041391311  # <= 2003/01/01 12:21:51 JST

D'un autre côté, «2.7.1» interprète également «Time.strptime».

shell-session:2.7.1p83


$ ruby test.rb
1047352911
1047352911
1047352911

S'il y a quelque chose comme la version ruby de delta, ce serait un coup si vous le lisez, mais cette passion ne naît pas ...

Recommended Posts

Dans Time.strptime,% j (date totale de l'année) est
Lorsque le mois de la date est acquis, le quart de janvier
A été effectué dans l'année de base de la semaine calendaire Java
Quelle est la représentation de la connaissance du domaine dans le modèle [DDD]?
'% 02d' Quel est le% de% 2?
Le concept de conception de l'API de date et d'heure de Java est intéressant
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Qu'est-ce que @Override ou @SuppressWarnings ("SleepWhileInLoop") devant la fonction? ?? ??
[Exemple de référence] Le droit d'auteur est décrit dans le commentaire du code source.
Ordre de traitement dans le programme
Code de la partie où server.servlet.session.timeout est défini dans spring.session.timeout dans le système spring-boot2
Ceci et cela de la mise en œuvre du jugement en temps réel des dates en Java
Erreur lors de la finalisation du membre de la classe Entity utilisé dans SpringWebFlux
Comment trouver le nombre total de pages lors de la pagination en Java
Obtenez le résultat de POST en Java
Spring Autowired est écrit dans le constructeur
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
L'identité des paramètres de rails [: id]
Quelle est la méthode principale en Java?
Quelle est la structure des données d'ActionText?
Comment obtenir la date avec Java
L'histoire de l'écriture de Java dans Emacs
Ecrire le mouvement de Rakefile dans le runbook
Dans le thème "concentration totale", "Comment utiliser Docker" est résumé pour le Mameko virtuel qui dort en moi.
Dans spring-security, l'URL de redirection de mon écran de connexion est incorrecte et la connexion échoue.
[Java] Où est la classe d'implémentation de l'annotation qui existe dans BeanValidation?
[Java] Est-il inutile de vérifier "l'identité" dans l'implémentation de la méthode equals ()?
Récupérer le premier jour de la semaine dans les paramètres régionaux actuels (quel jour est-il aujourd'hui?)
Si le produit total des n premiers nombres premiers plus 1 est un nombre premier
Est-il courant de ne pas écrire la balise de fermeture de la balise <P> dans Javadoc?
[Java] Calculer le jour à partir de la date (ne pas utiliser la classe Calendar)
Correspondance de la partie où l'authentification # getDetails est effectuée dans le test unitaire de spring-security
[Order method] Définit l'ordre des données dans Rails
Qu'est-ce que JSP? ~ Connaissons les bases de JSP !! ~
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
L'histoire de la fabrication d'un Othello ordinaire à Java
Le trait de soulignement ActiveSupport n'est pas la conversion inverse de camelize
À propos de l'idée des classes anonymes en Java
L'ordre des modificateurs de méthode Java est fixe
La version ruby est gérée dans le fichier .rbenv / version
Le type d'intersection introduit dans Java 10 est incroyable (?)
L'histoire de l'apprentissage de Java dans la première programmation
Mesurer la taille d'un dossier avec Java
Ressentez le passage du temps même à Java
La date et l'heure de java8 ont été mises à jour
Le nom officiel de Spring MVC est Spring Web MVC
[Java] Quelque chose est affiché comme "-0.0" dans la sortie
Importer des fichiers de la même hiérarchie en Java
Lorsque le projet n'est pas affiché dans eclipse
Ebean.update () n'est pas exécuté dans le modèle hérité.