Come ottengo la data / ora corrente nel formato GG / MM / AAAA HH: MM?


115

Come posso ottenere la data e l'ora correnti nel DD/MM/YYYY HH:MMformato e anche incrementare il mese?

Risposte:


184

La formattazione può essere eseguita in questo modo (pensavo che intendessi HH: MM invece di HH: SS, ma è facile da modificare):

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

Aggiornato per il 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"

Devi farlo require 'date'per questo btw.


sì hai ragione, voglio dire hh: mm, e grazie mille per la tua risposta
anonimo

ma come posso incrementare il mese?
anonimo

Controlla se puoi usare questa gemma rubygems.org/gems/formatted_times
ravi1991

La conversione in stringa e quindi l'analisi non è l'ideale.
Chuck Batson

1
@ChuckBatson Si trattava di spostare, non di suggerire che questo fosse il modo migliore per ottenere un Dateoggetto. Ad ogni modo, ho colto il tuo commento come un'opportunità per aggiornare finalmente questa risposta per le attuali versioni di 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
Lo trovo molto più semplice e leggibile rispetto alla soluzione accettata.
skagedal

7
time = Time.now.to_s

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

per l'incremento decremento mese utilizzare gli operatori << >>

esempi

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1

4

Per 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

Quanto sopra verrà visualizzato, ad esempio, 10/01/15

E per 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

Quanto sopra mostrerà, ad esempio, 11:33

Quindi per metterlo insieme, aggiungi alla fine:

puts date + " " + time
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.