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?

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.


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"

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.