Comment obtenir la date / heure actuelle au format JJ / MM / AAAA HH: MM?

116

Comment puis-je obtenir la date et l'heure actuelles au DD/MM/YYYY HH:MMformat et également incrémenter le mois?

anonyme
la source

Réponses:

185

Le formatage peut être fait comme ceci (je suppose que vous vouliez dire HH: MM au lieu de HH: SS, mais c'est facile à changer):

Time.now.strftime("%d/%m/%Y %H:%M")
#=> "14/09/2011 14:09"

Mis à jour pour le changement:

d = DateTime.now
d.strftime("%d/%m/%Y %H:%M")
#=> "11/06/2017 18:11"
d.next_month.strftime("%d/%m/%Y %H:%M")
#=> "11/07/2017 18:11"

Vous devez require 'date'pour ce btw.

Michael Kohl
la source
oui tu as raison, je veux dire hh: mm, et merci beaucoup pour ta réponse
anonyme le
mais comment puis-je incrémenter le mois?
anonyme le
Vérifiez si vous pouvez utiliser ce bijou rubygems.org/gems/formatted_times
ravi1991
La conversion en chaîne puis l'analyse n'est pas idéale.
Chuck Batson
1
@ChuckBatson Il s'agissait de déplacer, pas de suggérer que c'était la meilleure façon d'obtenir un Dateobjet. Quoi qu'il en soit, j'ai saisi votre commentaire comme une opportunité pour enfin mettre à jour cette réponse pour les versions actuelles de Ruby.
Michael Kohl
25
require 'date'

current_time = DateTime.now

current_time.strftime "%d/%m/%Y %H:%M"
# => "14/09/2011 17:02"

current_time.next_month.strftime "%d/%m/%Y %H:%M"
# => "14/10/2011 17:02"
Lars Haugseth
la source
1
Je trouve cela beaucoup plus simple et plus lisible que la solution acceptée.
skagedal
7
time = Time.now.to_s

time = DateTime.parse(time).strftime("%d/%m/%Y %H:%M")

pour incrémenter le mois, utilisez les opérateurs << >>

exemples

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1
Fivell
la source
4

Pour date:

#!/usr/bin/ruby -w

date = Time.new
#set 'date' equal to the current date/time. 

date = date.day.to_s + "/" + date.month.to_s + "/" + date.year.to_s
#Without this it will output 2015-01-10 11:33:05 +0000; this formats it to display DD/MM/YYYY

puts date
#output the date

Ce qui précède affichera, par exemple, 10/01/15

Et pour le temps

time = Time.new
#set 'time' equal to the current time. 

time = time.hour.to_s + ":" + time.min.to_s
#Without this it will output 2015-01-10 11:33:05 +0000; this formats it to display hour and           minute

puts time
#output the time

Ce qui précède affichera, par exemple, 11:33

Ensuite, pour le mettre ensemble, ajoutez à la fin:

puts date + " " + time
joe_young
la source