wcsftime ()- 轉換為格式化日期和時間

格式

     #include <wchar.h>
     size_t wcsftime(wchar_t *wdest, size_t maxsize,
                     const wchar_t *format, const struct tm *timeptr);

語言層次

ANSI

安全執行緒

區分語言環境

如果在編譯指令上指定 LOCALETYPE( *LOCALE) ,則現行語言環境的 LC_CTYPE、LC_TIME 及 LC_TOD 種類可能會影響此函數的行為。 如果在編譯指令上指定 LOCALETYPE (*LOCALEUCS2) 或 LOCALETYPE (*LOCALEUTF) ,則現行語言環境的 LC_UNI_CTYPE、LC_UNI_TIME 及 LC_UNI_TOD 種類也可能影響此函數的行為。 在編譯指令上指定 LOCALETYPE (*CLD) 時,無法使用此函數。 如需相關資訊,請參閱 瞭解 CCSID 及語言環境

寬字元函數

如需相關資訊,請參閱 寬字元

說明

wcsftime() 函數會將 timeptr 結構中的時間和日期規格轉換為寬字元字串。 然後,它會根據格式所指向的格式字串,將以空值結尾的字串儲存在 wdest 所指向的陣列中。 maxsize 值指定可複製到陣列中的寬字元數上限。 此函數相當於 strftime(),但它使用寬字元。

wcsftime() 函數的運作方式與 strftime() 函數類似,但它使用寬字元。 格式字串是一個寬字元字串,包含:
  • 轉換-規格字元。
  • 一般寬字元,未變更複製到陣列中。

此函數會使用 timeptr所指向的時間結構,如果指定元區分語言環境,則它也會使用現行語言環境的 LC_TIME 種類來決定每一個有效指定元的適當取代值。 通常透過呼叫 gmtime()localtime() 函數來取得 timeptr 所指向的時間結構。

回覆值

如果結果字串中的寬字元總數 (包括結束空值寬字元) 未超出 maxsize,則 wcsftime() 會傳回置於 wdest中的寬字元數 (不包括結束空值寬字元)。 否則, wcsftime() 函數會傳回 0 ,且陣列內容不確定。

如果發生轉換錯誤, errno 可能設為 ECONVERT

範例

此範例使用 localtime()取得日期和時間,使用 wcsftime()來格式化資訊,並列印日期和時間。
#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), L" Today is %A,"
                 L" %b %d.\n Time: %I:%M %p", timeptr);
   printf("%d characters placed in string to make:\n\n%ls\n", rc, dest);
   return 0;
 
   /********************************************************************
      The output should be similar to:
 
      43 characters placed in string to make:
 
       Today is Thursday, Nov 10.
       Time: 04:56 PM
   ********************************************************************/
}

相關資訊