Loading
ctimestr (時刻表記の変換)
形式
ctimestr( $input, $scanfmt, $outputfmt, $output)
引数
- $input: 入力文字列
- $scanfmt: 入力文字の日付、時刻フォーマット
- $outputfmt: 出力文字の日付、時刻フォーマット
- $output: 出力文字列
完了時の動作
- 変換成功:次の述語を実行に移ります。
- 変換失敗:input文字列がscanfmtで指定された形式で変換できない場合、バックトラックします。
バックトラック時の動作
- 常にバックトラックします。前の述語にバックトラックします。
説明
$inputで入っている時刻の形式を変換し$outputへ格納します。$scanfmtは入力文字列の形式を指定します。$outputfmtは出力文字列の形式を指定します。
$scanfmtの指定はC言語のscanfの様に,%に続けて書式指定文字を指定します。それ以外の文字は入力文字列に一致させる必要があります。,$outputfmtの指定はC言語のprintfのように%に続けて書式指定文字を指定します。それ以外の文字はそのまま出力されます。
書式指定文字は以下のとおりです。
書式記号 | 説明 |
%a | 週(英略記) Sun, Mon, Tue, Wed, Thu, Fri, Sat |
%b | 月(英略記) Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec |
%d | 日 01~31 |
%H | 時間 00~24 |
%m | 月(数字)01~12 |
%M | 分 00~59 |
%S | 秒 00~59 |
%w | 週(数字) 0~6 |
%Y | 年 0000~9999 |
%% | %自身を表す |
日、月、分、秒に関してですが、1桁の値の場合出力時は0を付与されます(2の場合、02のように出力されます)。入力に関しては0がついている必要はありません(02でも2でも構いません)。
コード例(lib/ctimestr.p)
,$t == 'Sat, 21 May 2011 14:58:41 +0000'
,$inp_fmt == '%a, %d %b %Y %H:%M:%S'
,$out_fmt == '%Y-%m-%d %H:%M:%S'
,ctimestr( $t, $inp_fmt, $out_fmt).prtn;
実行例
D:\sample\lib>adp ctimestr.p
2011-05-21 14:58:41
コード例2
,now.ctimestr('%a %b %d %H:%M:%S %Y', '%Y-%m-%d %H:%M:%S').prtn;
実行例2
2020-11-05 16:23:54
Powered by ADP.