Tôi có mã này chuyển đổi một chuỗi các chuỗi ngày theo định dạng từ ngày 17 tháng 11 năm 2011 đến ngày 17 tháng 11 năm 2011 :Chuyển đổi định dạng ngày chuỗi từ "17 tháng 11 năm 2011" thành "11/17/11"
def date_convert dates
months = { 'Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4,
'May' => 5, 'Jun' => 6, 'Jul' => 7, 'Aug' => 8,
'Sep' => 9, 'Oct' => 10, 'Nov' => 11, 'Dec' => 12 }
new_dates = []
dates.each do |date|
date_split = date.split('-')
month = months[date_split[1]]
day = date_split[0]
year = date_split[2][-2, 2]
new_dates.push ("#{month}/#{day}/#{year}")
end
new_dates
end
Có cách nào tốt hơn, có thể tích hợp để thực hiện chuyển đổi này với Ruby không? Tôi đang học Ruby nên mọi cách tiếp cận khác sẽ được đánh giá cao.
Ruby [ 'Date'] (http: // www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/index.html) và ['Time'] (http://www.ruby-doc.org/stdlib-1.9.3/libdoc /time/rdoc/index.html) thư viện rất đầy đủ tính năng. Cả hai đều xứng đáng dành thời gian để biết họ có thể làm gì; Ngày xử lý các phạm vi lớn hơn Thời gian. –
Đối với những lần khi 'phân tích cú pháp' thất bại hoặc bị nhầm lẫn, bạn nên xem xét một cách rõ ràng [' DateTime.strptime'] (http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html # method-c-strptime) – Phrogz
lưu ý: mảng trống + mỗi + push = map – tokland