建議使用 Visual Studio 2017

strftime、wcsftime、_strftime_l、_wcsftime_l

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

設定的時間字串的格式。

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以字元為單位的緩衝區 (charwchart_t)。

format
格式控制字串。

timeptr
tm資料結構。

locale
要使用的地區設定。

strftime傳回的字元放在數strDestwcsftime傳回對應的寬字元數目。

如果總數目的字元,包括結束的 null 多個maxsize,這兩個strftimewcsftime傳回 0 與內容strDest就無法確定。

中的字元數strDest等於常值中的字元數字format可能會加入至任何字元以及format經由格式化程式碼。 傳回值中就不會計算結束的 null 字串。

strftimewcsftime函式格式tm時間值中的timeptr根據所提供format引數和存放區的緩衝區中的結果strDest  最多為maxsize字元會放在字串中。 如需中欄位的說明timeptr結構,請參閱asctimewcsftime是寬字元對等的strftime; 指向的寬字元字串的字串指標引數。 除此之外,這些函式的行為相同。

System_CAPS_ICON_note.jpg 注意

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

這個函式會驗證它的參數。 如果strDestformat,或timeptr是 null 指標,或如果tm資料結構定址timeptr無效 (例如,如果它包含超出範圍的值之時間或日期),或如果format字串包含無效的格式化程式碼、 無效參數處理常式叫用時,所述參數驗證。 若要繼續,函數會傳回 0 和集合允許執行errnoEINVAL

一般文字常式對應

TCHAR.H 常式未定義 _UNICODE 和 _MBCS_MBCS 已定義_UNICODE 已定義
_tcsftimestrftimestrftimewcsftime

format引數包含一個或多個程式碼,如下所示printf,格式化程式碼會加上百分比符號 (%)。 不是以開頭的字元%不變,可複製strDest  LC_TIME的輸出格式的目前地區設定分類的影響strftime。 (如需有關LC_TIME,請參閱setlocale。)函式,但沒有_l後置詞使用目前設定的地區設定。 這些函式版本_l尾碼是完全相同之處在於它們做為參數的地區設定,並用,而不是目前設定的地區設定。 如需詳細資訊,請參閱 Locale

格式化錯誤碼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
Weekday 為十進位數字 (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完整日期表示,適用於目前的地區設定。 例如: 「 星期二,年 3 月 14,1995"。
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y移除前置的零 (如果有的話)。
常式必要的標頭
strftime<time.h>
wcsftime<time.h>或<wchar.h></wchar.h></time.h>
_strftime_l<time.h>
_wcsftime_l<time.h>或<wchar.h></wchar.h></time.h>

如需其他相容性資訊,請參閱<簡介>中的 相容性

請參閱範例時間

地區設定
時間管理
字串操作
localeconv
setlocale、 _wsetlocale
strcoll 函式
strxfrm、 wcsxfrm、 _strxfrm_l、 _wcsxfrm_l

顯示: