Jak uzyskać bieżącą datę / godzinę w formacie DD / MM / RRRR GG: MM?


116

Jak mogę uzyskać bieżącą datę i godzinę w DD/MM/YYYY HH:MMformacie, a także zwiększyć miesiąc?

Odpowiedzi:


185

Formatowanie można zrobić w ten sposób (założyłem, że masz na myśli HH: MM zamiast HH: SS, ale łatwo to zmienić):

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

Zaktualizowano dla zmiany biegów:

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"

Przy okazji musisz to zrobić require 'date'.


tak, masz rację, mam na myśli hh: mm, i bardzo dziękuję za odpowiedź
anonimowy

ale jak mogę zwiększyć miesiąc?
anonimowy,

Sprawdź, czy możesz użyć tego klejnotu rubygems.org/gems/formatted_times
ravi1991

Konwersja na łańcuch, a następnie analiza nie jest idealna.
Chuck Batson,

1
@ChuckBatson Chodziło o przesuwanie, a nie sugestia, że ​​to najlepszy sposób na zdobycie Dateprzedmiotu. W każdym razie, potraktowałem twój komentarz jako okazję do ostatecznego zaktualizowania tej odpowiedzi dla aktualnych wersji Rubiego.
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
Uważam to za znacznie prostsze i bardziej czytelne niż przyjęte rozwiązanie.
skagedal

7
time = Time.now.to_s

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

aby zwiększyć przyrost miesiąca użyj operatorów << >>

przykłady

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1

4

Na datę:

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

Powyższe spowoduje wyświetlenie np. 10/01/15

I na czas

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

Powyższe wyświetli na przykład 11:33

Następnie, aby to złożyć, dodaj na końcu:

puts date + " " + time
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.