¿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?

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.


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"

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.