¿Cómo obtengo la fecha / hora actual en formato DD / MM / AAAA HH: MM?

115

¿Cómo puedo obtener el DD/MM/YYYY HH:MMformato de fecha y hora actuales y también incrementar el mes?

anónimo
fuente

Respuestas:

184

El formateo se puede hacer así (asumí que te referías a HH: MM en lugar de HH: SS, pero es fácil de cambiar):

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

Actualizado para el cambio:

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"

Lo necesitas require 'date'para esto por cierto.

Michael Kohl
fuente
sí, tienes razón, quiero decir hh: mm, y muchas gracias por tu respuesta
anónimo
pero ¿cómo puedo incrementar el mes?
anónimo
Compruebe si puede utilizar esta gema rubygems.org/gems/formatted_times
ravi1991
Convertir a cadena y luego analizar no es ideal.
Chuck Batson
1
@ChuckBatson Se trataba de cambiar, no de una sugerencia de que fuera la mejor forma de obtener un Dateobjeto. De todos modos, tomé su comentario como una oportunidad para actualizar finalmente esta respuesta para las versiones actuales 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
fuente
1
Encuentro esto mucho más simple y más legible que la solución aceptada.
skagedal
7
time = Time.now.to_s

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

para el incremento del mes de decremento utilice los operadores << >>

ejemplos

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1
Fivell
fuente
4

Por fecha:

#!/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

Lo anterior mostrará, por ejemplo, 10/01/15

Y por tiempo

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

Lo anterior mostrará, por ejemplo, 11:33

Luego, para armarlo, agregue al final:

puts date + " " + time
joe_young
fuente