FC2ブログ
2008
11.07

今日のLua 世界時計

Category: lua   Tags:luaプログラミング
どう書く.org
で、

プログラムを実行した端末のロケールと、グリニッジ標準時と、ロサンゼルスの現在時刻をそれぞれ表示してください。時刻の表示はリアルタイムでなく、一回限りで構いません。時刻のフォーマットは自由とします。

出力例
現在の時刻は、2008年10月29日 11時36分21秒です。
グリニッジ標準時刻は、2008年10月29日 2時36分21秒です。
アメリカ・ロサンゼルスの時刻は、2008年10月28日 19時36分21秒です。



というのがあったので、lua で書いてみることにします。

print(os.date("現在の時刻は、%Y年%月%d日 %H時%M分%S秒です"))
print(os.date("!現在の時刻は、%Y年%月%d日 %H時%M分%S秒です"))



! をつけると、UTC での時間になるそうで。

format が `!´ で始まっていたら、日付は世界時 (Universal Time) で書式化される。


とマニュアルにあります。

残りは、ロサンゼルスの時間です。

カリフォルニア州なので、UTC-8。

os.setlocale というので、ロケールを変更できるっぽいので、変更してほげほげしたらなんとかなるか?

$ lua -e 'print(os.setlocale ())'
C


引数なしで呼ぶと、現在のロケールが返ってくる。

$ lua -e 'print(os.date())'
Fri Nov 7 16:38:30 2008



しかし、おもいっきり日本時間…。どっか別のところ見てる気がしてならないんだ。

$ lua -e 'print(os.setlocale ("no_NO"))'
nil


nil は失敗…。

どうしたらいいんだー。

っと、わかった。各種ロケールが使えるようになってない!

# dpkg-reconfigure locales


で、en_CA.UTF-8 を追加

$ lua -e 'print(os.setlocale ("en_CA.UTF-8"))'
en_CA.UTF-8


キタコレ
しかし、時間はそのまま。一体どこを見ていると言うのだ?

てか、ローカルのロケール変えても、全然変化がないんだよね。

カリフォルニアのタイムゾーンは、PST なので、こんな風にすれば

$ export TZ=PST
$ date
Fri Nov 7 08:04:48 UTC 2008


一応出てるっぽいが。。

なんと。調べたら書き方がまずったようで。

$ export TZ=America/Los_Angeles
$ date
Fri Nov 7 00:17:49 PST 2008



成功しました、やっと。。何やってんだか(わら
タイムゾーンの名前は、/usr/share/zoneinfo/ の下の ファイル名をそのまま書けばいいようです。つまり、/usr/share/zoneinfo/America/Los_Angeles というファイルが存在するということであります。

$ lua time.lua
現在の時刻は、2008年11月07日 17時25分49秒です
グリニッジ標準時刻は、2008年11月07日 08時25分49秒です
アメリカ・ロサンゼルスの時刻は、2008年11月07日 00時25分49秒です



でーきーたー!!!!!!

で、お待ちかねのコードです。

print(os.date("現在の時刻は、%Y年%m月%d日 %H時%M分%S秒です"))
print(os.date("!グリニッジ標準の時刻は、%Y年%m月%d日 %H時%M分%S秒です"))
os.execute('export TZ=America/Los_Angeles; lua -e "print(os.date(\'アメリカ・ロサンゼルスの時刻は、%Y年%m月%d日 %H時%M分%S秒です\'))"')











さて、逃げます!



スポンサーサイト




トラックバックURL
http://noriko3.blog42.fc2.com/tb.php/131-7f2f4b10
トラックバック
コメント
TZ=PST+8 じゃね?
K-Todot 2008.11.08 23:27 | 編集
ほんとだ、できた。
なんで+8なの?
紀子さんdot 2008.11.10 11:35 | 編集
http://v61aq.puyopuyo.net/js/rs/rs.html
からきました。ページ復活お願いします。
ぷよdot 2008.11.12 06:10 | 編集
私が管理してたわけではないので、管理してた人にいってください。
紀子さんdot 2008.11.12 11:50 | 編集
管理者にだけ表示を許可する
 
back-to-top