Trong chương trình Ruby 1.9, tôi muốn định dạng thời gian hiện tại như Thu 1:51 PM
. Tôi nên sử dụng mã định dạng nào cho giờ trong ngày (1
trong ví dụ này)?Làm cách nào để viết giờ của thời gian mà không có không gian hàng đầu hoặc không gian hàng đầu?
Time.now.strftime '%a %I:%M %p' #=> "Thu 01:51 PM"
Time.now.strftime '%a %l:%M %p' #=> "Thu 1:51 PM"
%I
có số 0 đứng đầu (01
). %l
có không gian hàng đầu ( 1
). Tôi không thấy bất kỳ mã định dạng nào khác cho giờ trong số strftime documentation. Tôi không thể sử dụng .lstrip
vì không gian nằm ở giữa chuỗi. Tôi có thể sử dụng .gsub(/ +/, " ")
, nhưng tôi tự hỏi liệu có cách nào ít hacky và đơn giản hơn không.
Chúc mọi giải pháp đều đơn giản và dễ hiểu. +1 – flarn2006
Giải pháp này có thể chỉ hoạt động trên các hệ thống Unix chứ không phải trên Windows. [Câu trả lời này cho "Python' strftime' - ngày không có 0 hàng đầu? "] (Https://stackoverflow.com/a/2073189/578288) là về cùng một nhiệm vụ trong Python, và nói rằng'% -' chỉ hoạt động trên Unix. [Tại sao "% -d", hoặc "% -e" loại bỏ không gian hàng đầu hoặc số không?] (Https://stackoverflow.com/q/28894172/578288) nói rằng sự không tương thích là bởi vì Python gọi hệ điều hành cơ bản của 'strftime', có thể có các tiện ích mở rộng nền tảng cụ thể. Tôi không biết liệu 'strftime' của Ruby có giống nhau hay không. –