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?

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.


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"

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.