Wie erhalte ich das aktuelle Datum / die aktuelle Uhrzeit im Format TT / MM / JJJJ HH: MM?

115

Wie kann ich das aktuelle Datum und die aktuelle Uhrzeit im DD/MM/YYYY HH:MMFormat abrufen und den Monat erhöhen?

anonym
quelle

Antworten:

184

Die Formatierung kann folgendermaßen erfolgen (ich nahm an, Sie meinten HH: MM anstelle von HH: SS, aber es ist leicht zu ändern):

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

Für die Verschiebung aktualisiert:

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"

Sie müssen require 'date'für diese übrigens.

Michael Kohl
quelle
Ja, Sie haben Recht, ich meine hh: mm, und vielen Dank für Ihre Antwort
anonym
aber wie kann ich den Monat erhöhen?
anonym
Überprüfen Sie, ob Sie dieses Juwel verwenden können rubygems.org/gems/formatted_times
ravi1991
Das Konvertieren in einen String und das Parsen sind nicht ideal.
Chuck Batson
1
@ChuckBatson Hier ging es um das Verschieben, nicht um den Vorschlag, dass dies der beste Weg ist, um ein DateObjekt zu erhalten. Wie auch immer, ich habe Ihren Kommentar zum Anlass genommen, diese Antwort für aktuelle Ruby-Versionen endlich zu aktualisieren.
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
quelle
1
Ich finde das viel einfacher und lesbarer als die akzeptierte Lösung.
Skagedal
7
time = Time.now.to_s

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

Verwenden Sie für Inkrement-Dekrement-Monat die Operatoren << >>

Beispiele

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1
Fivell
quelle
4

Für Datum:

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

Oben wird beispielsweise der 01.10.15 angezeigt

Und für die Zeit

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

Das Obige zeigt zum Beispiel 11:33 an

Um es dann zusammenzusetzen, fügen Sie am Ende hinzu:

puts date + " " + time
joe_young
quelle