Stringコマンドは、expressionに渡した数値、日付、時間、文字列、またはブールを文字列に変換します。
オプションのformatを指定しない場合、適当なデフォルトの形式で文字列が返されます。formatを指定すると、結果の文字列は指定した形式になります。
オプションのaddTime引数は、日付に時間を複合フォーマットで追加します。この引数はepression引数が日付型の時にのみ使用できます (後述)。
数値式
expressionが数値(実数、整数、倍長整数)である場合、オプションで文字列フォーマットを渡すことができます。次に例を示します。
例題 | 結果 | コメント |
String(2^15) | "32768" | デフォルトフォーマット |
String(2^15;"###,##0 Inhabitants") | "32,768 Inhabitants" |
String(1/3;"##0.00000") | "0.33333" |
String(1/3) | "0.3333333333333 " | デフォルトフォーマット(*) |
String(Arctan(1)*4) | "3.14159265359 " | デフォルトフォーマット(*) |
String(Arctan(1)*4;"##0.00") | "3.14" |
String(-1;"&x") | "0xFFFFFFFF" |
String(-1;"&$") | "$FFFFFFFF" |
String(0 ?+ 7;"&x") | "0x0080" |
String(0 ?+ 7;"&$") | "$80" |
String(0 ?+ 14;"&x") | "0x4000" |
String(0 ?+ 14;"&$") | "$4000" |
String(50,3;"&xml") | "50.3" | 必ず "." を小数点として使用 |
String(Num(1=1);"True;;False") | "True" |
String(Num(1=2);"True;;False") | "False" |
String(Log(-1)) | "" | 未定義の数値 |
String(1/0) | "INF" | 正の無限数 |
String(-1/0) | "-INF" | 負の無限数 |
(*) 4D v14 R3 以降、実数をテキストへと変換するアルゴリズムは、有効数字13桁に基づいて計算されています(それ以前のバージョンの4Dは15桁)
フォーマットは、フォームの数値フォーマットと同じ方法で指定します。数値フォーマットの詳細については4D Design Referenceマニュアルの
表示フォーマットを参照してください。カスタムフォーマットの書式名を
formatに渡すことができます。カスタムフォーマットの名前は“|”で始めなければなりません。
注: コンパイルモードにおいて、
String 関数は "整数64bit" 型フィールドと互換性がありません。
日付式
expressionが日付の場合、デフォルトフォ-マット(YY.MM.DD)を使用して文字列が返されます。format 引数には、以下で説明する定数のいずれか1つを渡すことができます (Date Display Formatsテーマ) 。
この場合addTime引数に時間を渡すことができます。この引数を使用すれば日付と時間を合成し、標準形式のタイムスタンプを生成することができます (ISO Date、ISO Date GMT、Date RFC 1123定数)。このフォーマットはXMLやWebの処理の際特に有効です。addTime引数はexpressionが日付型の場合のみ使用できます。
定数 |
型 |
値 |
コメント |
Blank if null date |
倍長整数 |
100 |
0の代わりに"" |
Date RFC 1123 |
倍長整数 |
10 |
Fri, 10 Sep 2010 13:07:20 GMT |
Internal date abbreviated |
倍長整数 |
6 |
Dec 29, 2006 |
Internal date long |
倍長整数 |
5 |
December 29, 2006 |
Internal date short |
倍長整数 |
7 |
2006/12/29 |
Internal date short special |
倍長整数 |
4 |
06/12/29 (しかし 1986/12/29 または 2096/12/29) |
ISO Date |
倍長整数 |
8 |
2006-12-29T00:00:00 |
ISO Date GMT |
倍長整数 |
9 |
2010-09-13T16:11:53Z |
System date abbreviated |
倍長整数 |
2 |
|
System date long |
倍長整数 |
3 |
|
System date short |
倍長整数 |
1 |
|
注: 表示フォーマットはシステム設定に応じて変化する可能性があります。
以下は今日が2006/12/29の場合の例です。
$vsResult:=String(Current date)
$vsResult:=String(Current date;Internal date long)
$vsResult:=String(Current date;ISO Date GMT)
日付/時間複合フォーマットに関するメモ:
- ISO Date GMTフォーマットはISO8601標準に対応します。日付と時間を含みタイムゾーン (GMT) を考慮します。
$mydate:=String(Current date;ISO Date GMT;Current time)
上記の例の最後の"Z"はGMTフォーマットの終了を表します。
addTime引数を渡さない場合、ローカルタイムの午前0時として扱いGMTに変換します (例題参照)。そのため日付がローカルタイムに対して前後することがあります。
$mydate:=String(Current date;ISO Date GMT)
- ISO DateフォーマットはISO Date GMTフォーマットと同様に日付と時間を含みますが、タイムゾーンを考慮しません。当初よりこのフォーマットはISO8601標準に準拠しておらず、非常に特殊な目的のために予約されたものです。
$mydate:=String(!13/09/2010!;ISO Date)
    $mydate:=String(Current date;ISO Date;Current time)
- Date RFC 1123フォーマットは日付と時間の組み合わせをRFC 822と1123で定義された標準に基づきフォーマットします。このフォーマットはたとえばHTTPヘッダーでcookieの有効期限を設定する際に必要となります。
$mydate:=String(Current date;Date RFC 1123;Current time)
表現される日時は、タイムゾーンが考慮されるためローカルのタイムゾーンにより日付が前後にずれることになります。日付のみを渡すと、コマンドはローカルタイムの00:00をGMT時間で表現して返します:
$mydate:=String(Current date;Date RFC 1123)
時間式
expressionが時間の場合、デフォルトフォ-マット(HH:MM:SS)を使用して文字列が返されます。format 引数には、以下の表に示す定数のいずれか1つを渡すことができます (Time Display Formatsテーマ) 。
定数 |
型 |
値 |
コメント |
Blank if null time |
倍長整数 |
100 |
0の代わりに"" |
HH MM |
倍長整数 |
2 |
01:02 |
HH MM AM PM |
倍長整数 |
5 |
1:02 AM |
HH MM SS |
倍長整数 |
1 |
01:02:03 |
Hour min |
倍長整数 |
4 |
1時2分 |
Hour min sec |
倍長整数 |
3 |
1時2分3秒 |
ISO time |
倍長整数 |
8 |
0000-00-00T01:02:03 |
Min sec |
倍長整数 |
7 |
62分3秒 |
MM SS |
倍長整数 |
6 |
62:03 |
System time long |
倍長整数 |
11 |
1:02:03 AM HNEC (Macのみ) |
System time long abbreviated |
倍長整数 |
10 |
1:02:03 AM (Macのみ) |
System time short |
倍長整数 |
9 |
01:02:03 |
Notes:- ISO DateフォーマットはISO8601標準に対応し、日付と時間を含みます。このフォーマットは日付と時間の複合をサポートしないため、日付部分は0で埋められます。このフォーマットはローカル時間を表します。
- Blank if null定数はフォーマットに他のフォーマットに加算して使用しなければなりません。追加することにより、Null値の場合、4Dは0の代わりに空の文字列を返します。
以下の例は、現在時刻が5:30 PM45秒であるものとします。
$vsResult:=String(Current time)
$vsResult:=String(Current time;Hour Min Sec)
文字列式
expressionが文字列またはテキスト型の場合、コマンドは引数に渡した値と同じ値を返します。これは特にポインタを使用している汎用プログラミングで有効です。
この場合、format引数は渡されても無視されます。
ブール式
expressionがブール 型の場合、コマンドはアプリケーションのランゲージに文字列 "True" または"False"を返します(例えば、4Dのフランス語バージョンでは、“Vrai”または“Faux”)。
この場合、format引数は渡されても無視されます。