Làm cách nào để lấy Ngày / giờ hiện tại ở định dạng DD / MM / YYYY HH: MM?


115

Làm cách nào tôi có thể lấy ngày và giờ hiện tại ở DD/MM/YYYY HH:MMđịnh dạng cũng như tăng tháng?

Câu trả lời:


184

Định dạng có thể được thực hiện như thế này (Tôi cho rằng bạn muốn nói HH: MM thay vì HH: SS, nhưng rất dễ thay đổi):

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

Cập nhật cho sự thay đổi:

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"

Bạn cần require 'date'cho btw này.


vâng, bạn nói đúng, ý tôi là hh: mm, và cảm ơn rất nhiều vì câu trả lời của bạn
nặc danh

nhưng làm thế nào tôi có thể tăng tháng?
nặc danh

Kiểm tra xem bạn có thể sử dụng viên đá quý này rubygems.org/gems/formatted_times
ravi1991

Chuyển đổi thành chuỗi sau đó phân tích cú pháp là không lý tưởng.
Chuck Batson

1
@ChuckBatson Đây là về chuyển đổi, không phải là một gợi ý rằng đây là cách tốt nhất để lấy một Dateđối tượng. Dù sao, tôi đã nhận xét của bạn như một cơ hội để cuối cùng cập nhật câu trả lời này cho các phiên bản Ruby hiện tại.
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
Tôi thấy điều này đơn giản và dễ đọc hơn nhiều so với giải pháp được chấp nhận.
trượt tuyết vào

7
time = Time.now.to_s

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

cho tháng tăng dần sử dụng << >> toán tử

ví dụ

datetime_month_before = DateTime.parse(time) << 1



datetime_month_before = DateTime.now << 1

4

Cho ngày:

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

Ví dụ ở trên sẽ hiển thị 10/01/15

Và trong thời gian

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

Ví dụ ở trên sẽ hiển thị 11:33

Sau đó, để kết hợp nó lại với nhau, hãy thêm vào phần cuối:

puts date + " " + time
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.