TimeToString関数の働き・役割
TimeToString関数は時刻を表す数字(UNIXタイム)を、私たちが普段使う日時の形式の文字列に変換するために使われます。
※このような、あるデータ型を異なる別タイプのデータ型に変換する作業のことをタイプキャスト(型変換)と呼びます。タイプキャストについての詳細は↓の記事をご参照ください
TimeToString関数はトレーディングシステムのログ出力、レポート作成、ユーザーインターフェースのデザインなど、ユーザーにとって理解しやすい形で日時情報を提示する際に便利です。
※UNIXタイムについての詳細は↓の記事をご参照ください
TimeToString関数の引数について
TimeToString関数の戻り値と引数構成は以下のようになっています。
string TimeToString(
datetime value, // 数
int mode=TIME_DATE|TIME_MINUTES // 出力フォーマット
);
TimeToString関数は2つの引数を取ります。
第1引数のvalue
は1970年1月1日からの経過秒数、すなわちUNIXタイムです。データ型はdateTime型です。※dateTime型についての詳細は↓の記事をご参照ください
第2引数のmode
は出力する日時の形式を定義し、年月日のみを表示するTIME_DATE
、時分を表示するTIME_MINUTES
、時分秒を表示するTIME_SECONDS
などのオプションを組み合わせて使用します。
TimeToString関数の戻り値について
TimeToString関数の戻り値は、引数mode
で指定された形式の文字列です。
例えば、TIME_DATE
を指定すれば「yyyy.mm.dd」(年.月.日)の形式、TIME_MINUTES
を指定すれば「hh:mi」(時:分)、TIME_SECONDSを指定すれば「hh:mi:ss」(時:分:秒)の形式で時刻が返されます。
TimeToString関数を使う際の注意点
TimeToString関数を使う際には、UNIXタイムとして有効な値を第1引数
に指定することが重要です。
無効な値を指定した場合、期待する結果が得られないか、エラーが発生する可能性があります。
また、出力形式は第2引数によって柔軟に変更できますが、必要な情報を適切に選択することが大切です。
TimeToString関数を使ったサンプルコード
以下に、TimeToString関数を使ってUNIXタイムを日時文字列に変換するサンプルコードを示します。
void OnStart()
{
// 現在の時刻をUNIXタイムで取得
datetime current_time = TimeCurrent();
// 現在の時刻を年月日のみの形式で文字列に変換
string date_str = TimeToString(current_time, TIME_DATE);
Print("現在の日付: ", date_str);
// 現在の時刻を時分の形式で文字列に変換
string time_str = TimeToString(current_time, TIME_MINUTES);
Print("現在の時刻: ", time_str);
// 現在の時刻を時分秒の形式で文字列に変換
string timestamp_str = TimeToString(current_time, TIME_DATE|TIME_MINUTES|TIME_SECONDS);
Print("完全なタイムスタンプ: ", timestamp_str);
}
このコードは現在の時刻をUNIXタイム形式で取得し、TimeToString関数を使って異なるフォーマットの文字列に変換して出力します。
最初は日付のみ、次に時分、最後に時分秒を含む完全なタイムスタンプとして出力しています。
これにより、UNIXタイムから一般的な日時形式への変換方法を理解することができます。
※タイムスタンプについての詳細は↓の記事をご参照ください
<参照>
StringToTime関数/EnumToString関数/DoubleToString関数/UNIXタイム/タイムスタンプ/datetime型//iTime関数/ENUM_TIMEFRAMES/TimeToStruct関数/MqlDateTime構造体
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。