世界時計

30分プログラム、その566。世界時計 via エロと風俗情報満載 どう抜く?

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

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

ようするに、日本の時刻とGMTとロサンゼルスの時刻を出せばいいんだよね。
本当はロサンゼルスの時刻はサマータイムを考慮にいれないといけないんだけど、ちょっと大変なので忘れることにしよう。とりあえず、あと7ヶ月ほどは正解を出力するはず。

使い方

$ gosh world.scm
現在の時刻 2009-04-14T21:59:17
グリニッジ標準時刻 2009-04-14T12:59:17
アメリカ・ロサンゼルスの時刻 2009-04-14T05:59:17

ソースコード

#! /opt/local/bin/gosh
;; -*- mode:scheme; coding:utf-8 -*-
;;
;; world.scm -
;;
;; Copyright(C) 2009 by mzp
;; Author: MIZUNO Hiroki / mzpppp at gmail dot com
;; http://howdyworld.org
;;
;; Timestamp: 2009/04/14 21:41:24
;;
;; This program is free software; you can redistribute it and/or
;; modify it under MIT Lincence.
;;

(use srfi-19)

(define (show name date)
  (print (date->string date #`",name ~5")))

(define now (current-time 'time-utc))

(show "現在の時刻"
      (time-utc->date now (* 9 60 60)))
(show "グリニッジ標準時刻"
      (time-utc->date now 0))
(show "アメリカ・ロサンゼルスの時刻"
      (time-utc->date now (* -7 60 60)))