=encoding euc-jp =head1 NAME =begin original HTTP::Date - date conversion routines =end original HTTP::Date - 日付変換ルーチン =head1 SYNOPSIS use HTTP::Date; $string = time2str($time); # Format as GMT ASCII time $time = str2time($string); # convert ASCII date to machine time =head1 DESCRIPTION =begin original This module provides functions that deal the date formats used by the HTTP protocol (and then some more). Only the first two functions, time2str() and str2time(), are exported by default. =end original このモジュールは HTTP プロトコルによって使われる日付フォーマットを扱う関数を (そしてそれ以上のものを) 提供します。 デフォルトでは最初の 2 つの関数、time2str() と str2time() だけが エクスポートされます。 =over 4 =item time2str( [$time] ) =begin original The time2str() function converts a machine time (seconds since epoch) to a string. If the function is called without an argument, it will use the current time. =end original time2str() 関数はマシン時刻 (紀元からの秒数) を文字列に変換します。 もしこの関数が引数無しで呼ばれれば、現在時刻を使います。 =begin original The string returned is in the format preferred for the HTTP protocol. This is a fixed length subset of the format defined by RFC 1123, represented in Universal Time (GMT). An example of a time stamp in this format is: =end original 文字列は、HTTP プロトコルに適したフォーマットで返されます。 これは固定長で、RFC 1123 で定義されているサブセット、世界時刻 (GMT) で 表されます。 このフォーマットでのタイムスタンプの例を以下に示します: Sun, 06 Nov 1994 08:49:37 GMT =item str2time( $str [, $zone] ) =begin original The str2time() function converts a string to machine time. It returns C if the format of $str is unrecognized, otherwise whatever the C functions can make out of the parsed time. Dates before the system's epoch may not work on all operating systems. The time formats recognized are the same as for parse_date(). =end original str2time() 関数は文字列をマシン時刻に変換します。 もし $str のフォーマットが理解できなければ C を返し、 さもなければ、パースした時刻に対して C 関数が出力したものを 返します。 システムの期限以前の日付は、全てのオペレーティングシステムでは 動作しないかもしれません。 理解される時刻フォーマットは parse_date() と同じです。 =begin original The function also takes an optional second argument that specifies the default time zone to use when converting the date. This parameter is ignored if the zone is found in the date string itself. If this parameter is missing, and the date string format does not contain any zone specification, then the local time zone is assumed. =end original この関数は、日付を変換するときに使われるデフォルトの時間帯を指定する オプションの 2 番目の引数も取ることが出来ます。 日付文字列自身に時間帯が見つかれば、このパラメータは無視されます。 もしこのパラメータがなく、日付文字列のフォーマットに時間帯の指定が 入っていなければ、ローカル時間帯が想定されます。 =begin original If the zone is not "C" or numerical (like "C<-0800>" or "C<+0100>"), then the C module must be installed in order to get the date recognized. =end original 時間帯が "C" でも ("C<-0800>" や "C<+0100>" のような) 数値でもなければ、 日付を理解するために C モジュールが インストールされていなければなりません。 =item parse_date( $str ) =begin original This function will try to parse a date string, and then return it as a list of numerical values followed by a (possible undefined) time zone specifier; ($year, $month, $day, $hour, $min, $sec, $tz). The $year returned will B have the number 1900 subtracted from it and the $month numbers start with 1. =end original この関数は日付文字列を解析しようとし、(未定義かもしれない) 時間帯指定子に 従って、数値のリストとして返します; ($year, $month, $day, $hour, $min, $sec, $tz)。 返される $year は 1900 を B<引かれない> 数値を持ち、 $month は 1 から始まります。 =begin original In scalar context the numbers are interpolated in a string of the "YYYY-MM-DD hh:mm:ss TZ"-format and returned. =end original スカラコンテキストでは "YYYY-MM-DD hh:mm:ss TZ" というフォーマットの 文字列に展開され、返されます。 =begin original If the date is unrecognized, then the empty list is returned. =end original 日付が理解できなければ、空リストが返されます。 =begin original The function is able to parse the following formats: =end original この関数は以下のフォーマットを解析することができます: "Wed, 09 Feb 1994 22:23:32 GMT" -- HTTP format "Thu Feb 3 17:03:55 GMT 1994" -- ctime(3) format "Thu Feb 3 00:00:00 1994", -- ANSI C asctime() format "Tuesday, 08-Feb-94 14:15:29 GMT" -- old rfc850 HTTP format "Tuesday, 08-Feb-1994 14:15:29 GMT" -- broken rfc850 HTTP format "03/Feb/1994:17:03:55 -0700" -- common logfile format "09 Feb 1994 22:23:32 GMT" -- HTTP format (no weekday) "08-Feb-94 14:15:29 GMT" -- rfc850 format (no weekday) "08-Feb-1994 14:15:29 GMT" -- broken rfc850 format (no weekday) "1994-02-03 14:15:29 -0100" -- ISO 8601 format "1994-02-03 14:15:29" -- zone is optional "1994-02-03" -- only date "1994-02-03T14:15:29" -- Use T as separator "19940203T141529Z" -- ISO 8601 compact format "19940203" -- only date "08-Feb-94" -- old rfc850 HTTP format (no weekday, no time) "08-Feb-1994" -- broken rfc850 HTTP format (no weekday, no time) "09 Feb 1994" -- proposed new HTTP format (no weekday, no time) "03/Feb/1994" -- common logfile format (no time, no offset) "Feb 3 1994" -- Unix 'ls -l' format "Feb 3 17:03" -- Unix 'ls -l' format "11-15-96 03:52PM" -- Windows 'dir' format =begin original The parser ignores leading and trailing whitespace. It also allow the seconds to be missing and the month to be numerical in most formats. =end original パーサは前や後ろについた空白を無視します。 またほとんどのフォーマットで秒を指定しなかったり、月を 数字で指定することも許します。 =begin original If the year is missing, then we assume that the date is the first matching date I current month. If the year is given with only 2 digits, then parse_date() will select the century that makes the year closest to the current date. =end original もし年 (year) がなければ、日付は、現在の月より前で最初にマッチした 日付であると想定します。 年が 2 桁だけで指定されれば、parse_date() はその年が、現在の時刻に最も 近くなるような世紀を選びます。 =item time2iso( [$time] ) =begin original Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ss"-formatted string representing time in the local time zone. =end original time2str() と同じですが、しかしローカル時間帯での時刻を表す、 "YYYY-MM-DD hh:mm:ss" でフォーマットされた文字列を返します。 =item time2isoz( [$time] ) =begin original Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ssZ"-formatted string representing Universal Time. =end original time2str() と同じですが、しかし世界時を表す、 "YYYY-MM-DD hh:mm:ssZ" でフォーマットされた文字列を返します。 =back =head1 SEE ALSO L, L =head1 COPYRIGHT Copyright 1995-1999, Gisle Aas This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =begin meta Translated: Hippo2000 (5.48) Updated: Kentaro SHIRAKATA (5.813) =end meta =cut