Як отримати поточну дату / час у форматі DD / MM / РРРР HH: MM?


115

Як я можу отримати поточну дату та час у DD/MM/YYYY HH:MMформаті, а також збільшити місяць?

Відповіді:


184

Форматування можна зробити так (я вважав, що ви мали на увазі HH: MM замість HH: SS, але це легко змінити):

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

Оновлено для зміни:

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"

Вам потрібно require 'date'для цього BTW.


так, ви маєте рацію, я маю на увазі hh: мм, і велике спасибі за вашу відповідь
анонімний

але як я можу збільшити місяць?
анонімний

Перевірте, чи можете ви використовувати цей дорогоцінний камінь rubygems.org/gems/formatted_times
ravi1991

Перетворення в рядок, тоді розбір не є ідеальним.
Чак Батсон

1
@ChuckBatson Йшлося про зрушення, а не про припущення, що це найкращий спосіб отримати Dateоб’єкт. У всякому разі, я сприйняв ваш коментар як можливість остаточно оновити цю відповідь для поточних версій Ruby.
Майкл Коль

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
Мені здається, це набагато простіше і читабельніше прийнятого рішення.
skagedal

7
time = Time.now.to_s

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

для місяця зменшення приросту використовують << >> операторів

приклади

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1

4

На дату:

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

Наведене вище відображатиметься, наприклад, 01.10.15

І на час

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

Вище буде показано, наприклад, 11:33

Потім, щоб скласти це, додайте до кінця:

puts date + " " + time
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.