<Return[G]><Top>

GetTimeFormat

Declare Function Api_GetTimeFormat& Lib "kernel32" Alias "GetTimeFormatA" (ByVal Locale&, ByVal dwFlags&, lpTime As SYSTEMTIME, ByVal lpFormat As Any, ByVal lpTimeStr$, ByVal cchTime&)

Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpTime As SYSTEMTIME, ByVal lpFormat As Any, ByVal lpTimeStr As String, ByVal cchTime As Long) As Long

時刻を書式化フォーマットして、指定されたローケルに対応する時刻文字列を作成する。この関数は、指定された時刻、またはローカルのシステム時刻を書式化する。

パラメータ
Locale
    時刻の書式化に使うべきロケールを指定する。

    lpFormat パラメータで NULL を指定した場合、この関数はこのロケールに対応する時刻フォーマットに従って、時刻文字列を作成する。

    lpFormat パラメータで NULL 以外の値を指定した場合、lpFormat パラメータの書式制御文字列で指定されていない情報に関しての

    み、ロケールの情報を利用する(たとえば、ロケールの時刻マーカーの AM など)。
    MAKELCID マクロを使って作成したロケール識別子、またはあらかじめ定義されている次の値のいずれかを指定する。

    値                                                 

意味                                         

    LOCALE_SYSTEM_DEFAULT

システムの既定のロケール

    LOCALE_USER_DEFAULT

現在のユーザーの既定のロケール

dwFlags
    関数のさまざまなオプションを指定する。次のフラグを組み合わせて指定する。

    値                                                 

意味                                                                                                                        

    LOCALE_NOUSEROVERRIDE

 

 

 

指定したロケールに対応する、システムの既定の時刻フォーマットに従って、時刻文字列をフォーマッ

トする。このフラグを指定しなかった場合、この関数はユーザーが指定したすべての書式制御文字列

を使って、指定されたロケールの既定の時刻フォーマットを作成する。このフラグを指定できるのは、

lpFormat パラメータで NULL を指定した場合のみである。

    LOCALE_USE_CP_ACP

 

文字の書式化を行う際に、指定されたロケールのコードページではなく、システムの ANSI コードペー

ジを使う。

    TIME_NOMINUTESORSECONDS

分と秒を使わない。

    TIME_NOSECONDS

秒を使わない。

    TIME_NOTIMEMARKER

時刻マーカーを使わない。

    TIME_FORCE24HOURFORMAT

必ず 24 時間制で表記する。

lpTime
    書式化するべき時刻情報を保持している、1 個の SYSTEMTIME 構造体へのポインタを指定する。

    NULL を指定すると、この関数は、現時点でのローカルのシステム時刻を使う。
lpFormat
    時刻文字列の作成に使うべき書式制御文字列へのポインタを指定する。

    NULL を指定すると、この関数は、指定したロケールに対応する時刻フォーマットを使う。
    書式制御文字列は、次の要素を組み合わせて構築する。

    制御文字列の中で半角スペースを使って複数の要素を区切った場合、それらの半角スペースは、出力文字列の中で同じ場所に表示され

    る。各要素は、表で示したのと同じ形式で大文字と小文字を表記しなければならない(たとえば、表に "ss" と記載されている場合、"SS"

    とは入力できない)。

    制御文字列内で特定の文字を引用符(')で囲むと、その文字は出力文字列にそのまま表示される。

    制御文字  

意味                                                                              

    h

12 時間制の時間。1 桁の場合でも、先頭に 0 は付かない。

    hh

12 時間制の時間。1 桁の場合、先頭に 0 が付く。

    H

24 時間制の時間。1 桁の場合でも、先頭に 0 は付かない。

    HH

24 時間制の時間。1 桁の場合、先頭に 0 が付く。

    m

分。1 桁の場合でも、先頭に 0 は付かない。

    mm

分。1 桁の場合、先頭に 0 が付く。

    s

秒。1 桁の場合でも、先頭に 0 は付かない。

    ss

秒。1 桁の場合、先頭に 0 が付く。

    t

1 文字の時刻マーカー。「A」「P」など。

    tt

複数文字の時刻マーカー。「AM」「PM」「午前」「午後」など。

    たとえば、次の文字列を取得するには、"11:29:40 PM"
    次の制御文字列を指定する。               "hh':'mm':'ss tt"
lpTimeStr
    1 個のバッファへのポインタを指定する。関数から制御が返ると、このバッファに、書式化された時刻文字列が格納される。
cchTime
    lpTimeStr バッファのサイズを、TCHAR 単位で指定する。

    0 を指定すると、この関数は、書式化された時刻文字列を格納するために必要なバッファのバイト数または文字数を返す。

    このとき、lpTimeStr バッファは使用されない。
 

戻り値
    関数が成功すると、lpTimeStr バッファに格納された文字列の長さが TCHAR 単位で返る。

    ただし、cchTime パラメータで 0 を指定した場合、書式化された時刻文字列を格納するために必要なバイト数または文字数が返る。

    この長さには、最後の NULL が含まれている。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

    GetLastError は、次のエラーコードのいずれかを返すことがある。
    ERROR_INSUFFICIENT_BUFFER
    ERROR_INVALID_FLAGS
    ERROR_INVALID_PARAMETER