共用方式為


strftime、 wcsftime、 _strftime_l、 _wcsftime_l

設定時間字串的格式。

size_t strftime(
   char *strDest,
   size_t maxsize,
   const char *format,
   const struct tm *timeptr 
);
size_t _strftime_l(
   char *strDest,
   size_t maxsize,
   const char *format,
   const struct tm *timeptr,
   _locale_t locale
);
size_t wcsftime(
   wchar_t *strDest,
   size_t maxsize,
   const wchar_t *format,
   const struct tm *timeptr 
);
size_t _wcsftime_l(
   wchar_t *strDest,
   size_t maxsize,
   const wchar_t *format,
   const struct tm *timeptr,
   _locale_t locale
);

參數

  • strDest
    輸出字串。

  • maxsize
    大小的strDest以字元為單位來測量的緩衝區 (char或wchart_t)。

  • format
    控制項的格式字串。

  • timeptr
    tm資料結構。

  • locale
    使用地區設定。

傳回值

strftime傳回的字元放在strDest和wcsftime傳回相對應的寬字元數目。

如果總數目的字元,包括結尾的 null,多個maxsize,這兩個strftime和wcsftime傳回 0 與內容strDest是不確定的。

中的字元數strDest等於常值中的字元數字format ,也可能會增加任何字元format透過格式化程式碼。字串的結尾的 null 不計入傳回值。

備註

strftime和wcsftime函式格式tm時間值在timeptr來提供format引數,並存放在緩衝區中的結果strDest*.* 一般而言, maxsize字元放置在字串中。如需說明中的欄位timeptr結構,請參閱 asctime。 wcsftime相當於寬字元strftime。 其字串指標引數點寬字元字串。這些函式具有相同其他方式作業。

注意事項注意事項

在之前的版本Visual C++ 2005,所述的文件format參數的wcsftime為具有資料類型const wchar_t *,但實際的實作format資料類型為const char *。 實作format資料類型已經更新以反映先前與目前文件,也就是const wchar_t *。

此函式會驗證它的參數。如果strDest, format,或timeptr指標是 null,或者如果tm所修正的資料結構timeptr是不正確(例如,如果它包含超出範圍值的時間或日期),或是否format字串包含不正確程式碼的格式設定、不正確的參數處理常式會叫用,如所述參數驗證。 如果要繼續,函式傳回 0,並設定允許執行errno到EINVAL。

泛用文字常式對應

TCHAR。H常式

_UNICODE & 未定義的 _MBCS

定義的 _MBCS

定義 _unicode 之後

_tcsftime

strftime

strftime

wcsftime

format引數會組成一或多個的程式碼。 在printf,格式化代碼會加上百分比符號 (%)。不是以開頭的字元%會複製未變更到strDest*.*LC_TIME分類的目前地區設定會影響輸出格式設定的strftime。 (如需有關LC_TIME,請參閱 setlocale。) 函式_l尾碼使用目前設定地區設定。使用這些函式的版本_l尾碼都一樣,差異在於他們取得做為參數的地區設定,並使用,而不是目前設定地區設定。如需詳細資訊,請參閱 地區設定

格式代碼strftime如下所示:

  • %a
    縮寫的星期名稱

  • %A
    完整的星期名稱

  • %b
    縮寫的月份名稱

  • %B
    完整月份名稱

  • %c
    適合地區設定的日期和時間表示

  • %d
    為十進位的數字 (01 – 31) 個月的第幾天

  • %H
    24 小時制的小時 (00 – 23)

  • %I
    12 小時制 (01 – 12) 的小時

  • %j
    年份是十進位數字 (001-366) 的第幾天

  • %m
    月份,以十進位數字 (01 – 12)

  • %M
    為十進位的數字分 (00 – 59)

  • %p
    目前地區設定的 a.m./p.m.。適用於 12 小時制的指標

  • %S
    第二個以十進位數字 (00 – 59)

  • %U
    那一週年為十進位的數字,每週的第一天為星期日 (00 – 53)

  • %w
    非周末為十進位的數字 (0 – 6。 星期天是 0)

  • %W
    為十進位的數字,每週的第一天為星期一的年中的週 (00 – 53)

  • %x
    目前的地區設定的日期表示

  • %X
    目前的地區設定的時間表示法

  • %y
    不含世紀的十進位數字的年份 (00 – 99)

  • %Y
    含世紀,為十進位的數字的年份

  • %z, %Z
    在時間的區域名稱或時間區域的縮寫,完全取決於登錄設定。 如果區域不知道的任何字元

  • %%
    百分比符號

在printf函式, #旗標可能前置詞的任何格式設定的程式碼。 在此大小寫中,格式程式碼的意義會變更,如下所示。

格式化程式碼

意義

%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%

#旗標都會被忽略。

%#c

長日期和時間表示,適用於目前的地區設定。比方說: 「 星期二,年 3 月 14,1995 年 12: 41: 29"。

%#x

完整日期表示,適用於目前的地區設定。比方說: 「 1995 年 3 月 14,星期二"。

%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y

(如果有的話),請移除前置字元零。

需求

常式

所需的標題

strftime

<time.h>

wcsftime

<time.h> 或者 <wchar.h>

_strftime_l

<time.h>

_wcsftime_l

<time.h> 或者 <wchar.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

請參閱範例的時間

.NET Framework 對等用法

請參閱

參考

地區設定

時間管理

字串操作 (CRT)

localeconv

setlocale _wsetlocale

strcoll 函式

strxfrm、 wcsxfrm、 _strxfrm_l、 _wcsxfrm_l