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.