Jeśli potrzebujesz strefę czasową Olson (bo stref czasowych trzyliterowe są niejednoznaczne, ponieważ w strefie przesunięcia), wygląda na to, że nie ma sposobu, aby to zrobić w czystej Ruby/Rails. Ruby poda tylko krótki kod (zasadniczo przez date +%Z
), a Railsy używają strefy czasowej swojej konfiguracji (domyślnie: UTC).
Powiedział, shelling out can be made to work w połączeniu z 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
To daje mi do strefy lokalnej. Chcę, jeśli osoba siedząca w New Delhi uzyskuje dostęp do mojej aplikacji, a następnie widzi czas w "IST" i jeśli dana osoba siedzi w SanFransisco, może zobaczyć czas w "PST". Jaka jest konfiguracja, jakiej potrzebuję zrobić w mojej aplikacji, aby to osiągnąć? –
Thanx suvankar. Twoja odpowiedź zadziałała. :) –