wcsftime() - 日時のフォーマット設定

標準

標準/拡張機能 C/C++ 依存項目

ISO C 改訂
XPG4
XPG4.2
C99
Single UNIX Specification、バージョン 3

両方  

形式

XPG4:
#include <wchar.h>

size_t wcsftime(wchar_t * __restrict__ wcs, size_t maxsize, 
                const wchar_t * __restrict__ format,
                const struct tm * __restrict__ time_ptr)
XPG4:
#define _XOPEN_SOURCE
#include <wchar.h>

size_t wcsftime(wchar_t * __restrict__ wcs, size_t maxsize, 
                const char * __restrict__ format,
                const struct tm * __restrict__ time_ptr)
XPG4 および MSE:
#define _XOPEN_SOURCE
#define _MSE_PROTOS
#include <wchar.h>

size_t wcsftime(wchar_t * __restrict__ wcs, size_t maxsize, 
                const wchar_t * __restrict__ format,
                const struct tm * __restrict__ time_ptr)

機能説明

日時をワイド文字ストリングにフォーマット設定します。wcsftime() 関数は、以 下の点を除いて strftime() と同じ機能です。
  • 引数 wcs は、生成された出力が配置される ワイド・ストリングの配列を指定します。
  • 引数 maxsize はワイド文字数を示します。
  • 引数 *format は、書式制御ストリングから 成るワイド文字の配列を指定します。
  • 戻り値はワイド文字数を示しています。

XPG4 の特殊な動作: プログラム・ソース・ファイル内の wchar ヘッダーをインクルードするステートメントより前に、XPG4 の動作を指定してフィーチャー・テスト・マクロを定義した場合、_MSE_PROTOS フィーチャー・テスト・マクロも定義しない限り、コンパイラーは、ユーザーのプログラムが wcsftime() 関数の XPG4 版を使用するものと想定します。 XPG4 と他のフィーチャー・テスト・マクロのリストについては、表 1 を参照してください。

wcsftime() 関数の XPG4 版のプロトタイプは、以下のとおりです。
size_t wcsftime(wchar_t *wcs, size_t maxsize, const char *format,
                const struct tm *time_ptr)

wcsftime() 関数のこの種類と MSE 種類との間の差は、3 番目の引数、*format が書式制御ストリングから成るワイド文字の配列ではなく、文字の配列を指定することです。

戻り値

終了 NULL ワイド文字を含む結果のワイド文字の合計数が maxsize を超えない場合には、wcsftime() は、終了 NULL ワイド文字を含まない、wcs が指す配列に配置されたワイド文字数を戻します。

正常に実行されなかった場合、wcsftime() は、0 を戻し、配列の内容は不確定となります。

CELEBW10
⁄* CELEBW10 *⁄                                   
#include <stdio.h>                                                              
#include <time.h>                                                               
#include <wchar.h>                                                              
                                                                                
int main(void)                                                                  
{                                                                               
   struct tm *timeptr;                                                          
   wchar_t dest[100];                                                           
   time_t  temp;                                                                
   size_t  rc;                                                                  
                                                                                
   temp = time(NULL);                                                           
   timeptr = localtime(&temp);                                                  
   rc = wcsftime(dest, sizeof(dest)-1, L" Today is %A,"                         
                 L" %b %d.¥n Time: %I:%M %p", timeptr);                         
   printf("%d characters placed in string to make:¥n¥n%S", rc, dest);           
}                                                                               
出力:
42 characters placed in string to make:

 Today is Friday, Jun 16.
 Time: 01:48 pm

関連情報