日時を取得する

 Pythonの標準モジュールを使うとtime.time()ですることを.NET Frameworkを使ってやってみたいと思います。

 今、何時が調べてみる。

 C#の例なんかをWebで調べると、System.DateTime.Nowを使えばいいらしい。今回は簡単なのでインタラクティブシェルを使ってみます。
 >>> from System.DateTime import Now
 >>> print Now
 2010/08/20 8:16:52 ← おー 成功!!
 >>> print Now
 2010/08/20 8:16:52 ← あれれ?
 >>> print Now
 2010/08/20 8:16:52 ← アップデートされない。
 アップデートされないのは、どうもNowが関数やメゾットでないことが原因のようにです。つまりIron Pythonからしてみれば、一回目はわからないからNET Frameworkのライブラリに調べに行くけど、二回目以降は変数として扱って、値はメモリに保存されているので、わざわざ調べずにメモリを参照するだけで済ましているようです。
 なので正しく動作させるには次のようにします。
 >>> from System import DateTime
 >>> print DateTime.Now
 2010/08/20 1:19:45
 >>> print DateTime.Now
 2010/08/20 1:19:47
 >>> print DateTime.Now
 2010/08/20 1:19:52
 今度うまくアップデートしていますね。

 世界標準時間は今、何時が調べてみる。

 イギリスのグリニッジ天文台の正午を基準としたグリニッジ標準時(GMT)を基準とした時間が世界標準時間と学校で習ったし、そうだと思っていたけど、今の標準時間はUTCと言って、セシウム原子の放射周期を基準にしているらしい。初めて知った。
 .NET FrameworkではUTC時間も表示させることができます。
 >>> from System import DateTime
 >>> print DateTime.Now
 2010/08/20 9:10:31   ←日本標準時間
 >>> print DateTime.UtcNow
 2010/08/20 0:10:34   ←世界標準時間
 >>> print DateTime.ToLocalTime(DateTime.UtcNow)
 2010/08/20 9:10:41   ←世界標準時間を日本標準時間に変換
 >>> print DateTime.ToLocalTime(DateTime.Now)
 2010/08/20 9:10:44   ←う〜ん、騙されないか残念。
 最後の一行は冗談です。DateTime.Nowが返す情報には、UTCかLocalTimeか判断する情報が入っているようです。