Como obtenho a data / hora atual no formato DD / MM / AAAA HH: MM?

115

Como posso obter a data e hora atuais no DD/MM/YYYY HH:MMformato e também incrementar o mês?

anônimo
fonte

Respostas:

184

A formatação pode ser feita assim (presumi que você quisesse dizer HH: MM em vez de HH: SS, mas é fácil de mudar):

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

Atualizado para a mudança:

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"

Você precisa require 'date'para este btw.

Michael Kohl
fonte
sim, você está certo, quero dizer hh: mm, e muito obrigado pela sua resposta
anônimo
mas como posso incrementar o mês?
anônimo,
Verifique se você pode usar esta gema rubygems.org/gems/formatted_times
ravi1991
Converter para string e depois analisar não é o ideal.
Chuck Batson de
1
@ChuckBatson Tratava-se de mudança, não uma sugestão de que essa era a melhor maneira de obter um Dateobjeto. De qualquer forma, aproveitei seu comentário como uma oportunidade para finalmente atualizar esta resposta para as versões atuais do 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
fonte
1
Acho isso muito mais simples e mais legível do que a solução aceita.
skagedal
7
time = Time.now.to_s

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

para incremento decremento mês use operadores << >>

exemplos

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1
Fivell
fonte
4

Para data:

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

O texto acima exibirá, por exemplo, texto 01/10/15

E por tempo

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

Acima será exibido, por exemplo, 11:33

Então, para colocá-lo junto, adicione ao final:

puts date + " " + time
joe_young
fonte