Nếu bạn cần múi giờ Olson (vì múi giờ ba chữ là mơ hồ, như giờ GMT offsets), có vẻ như không có cách nào để làm điều đó trong tinh khiết Ruby/Rails. Ruby sẽ chỉ cung cấp mã ngắn (về cơ bản là thông qua date +%Z
) và Rails sử dụng múi giờ của cấu hình của nó (mặc định: UTC).
Điều đó nói rằng, shelling out can be made to work kết hợp với another answer:
def get_local_timezone_str
# Yes, this is actually a shell script…
olsontz = `if [ -f /etc/timezone ]; then
cat /etc/timezone
elif [ -h /etc/localtime ]; then
readlink /etc/localtime | sed "s/\\/usr\\/share\\/zoneinfo\\///"
else
checksum=\`md5sum /etc/localtime | cut -d' ' -f1\`
find /usr/share/zoneinfo/ -type f -exec md5sum {} \\; | grep "^$checksum" | sed "s/.*\\/usr\\/share\\/zoneinfo\\///" | head -n 1
fi`.chomp
# …and it almost certainly won't work with Windows or weird *nixes
throw "Olson time zone could not be determined" if olsontz.nil? || olsontz.empty?
return olsontz
end
này mang lại cho tôi khu vực địa phương. Tôi muốn rằng nếu một người ngồi ở New Delhi truy cập vào ứng dụng của tôi sau đó ông được nhìn thấy thời gian trong "IST" và nếu một người đang ngồi ở SanFransisco ông được nhìn thấy thời gian trong "PST" .. Cấu hình tôi cần là gì để thực hiện trong ứng dụng của tôi để đạt được điều này? –
Thanx suvankar. Câu trả lời của bạn đã hoạt động. :) –