_strdate_s _wstrdate_s
將目前的系統日期複製到緩衝區。 這些是舊版 _strdate、 _wstrdate 中所述的安全性增強功能與安全性功能,則在 CRT 中。
errno_t _strdate_s(
char *buffer,
size_t numberOfElements
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t numberOfElements
);
template <size_t size>
errno_t _strdate_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrdate_s(
wchar_t (&buffer)[size]
); // C++ only
參數
[out] buffer
這將會填入在格式化的日期字串的緩衝區指標。[in] numberOfElements
緩衝區的大小。
傳回值
如果成功的話,則為零。 如果失敗,傳回的值會是一個錯誤碼。 錯誤代碼被定義在 ERRNO 中。H。 請參閱下表針對產生此函式的確切錯誤。 如需有關錯誤碼的詳細資訊,請參閱 errno。
錯誤狀況
buffer |
numberOfElements |
Return |
內容buffer |
---|---|---|---|
NULL |
(任何) |
EINVAL |
不能修改 |
不NULL (指向有效的緩衝區) |
0 |
EINVAL |
不能修改 |
不NULL (指向有效的緩衝區) |
0 < numberOfElements< 9 |
EINVAL |
空字串 |
不NULL (指向有效的緩衝區) |
numberOfElements> = 9 |
0 |
目前的日期格式化為指定 「 備註 」 中 |
安全性問題
傳遞無效的非NULL值的緩衝區當就會發生存取違規numberOfElements參數大於 9。
傳遞值的大小大於實際大小的buffer ,將會導致緩衝區滿溢的情況。
備註
這些函式會提供更安全版本的_strdate和_wstrdate。 _strdate_s函式所指向的緩衝區複製目前的系統日期buffer、 格式化過mm/dd/yy,其中mm兩個數字代表月份, dd兩個數字代表日期,以及yy是一年的最後二位數。 例如,字串12/05/99代表 1999 年 12 月 5 日。 緩衝區的大小必須至少 9 個字元。
_wstrdate_s寬字元版本的_strdate_s。 引數和傳回值的_wstrdate_s是寬字元字串。 這些函式具有相同其他方式作業。
如果buffer是NULL指標,或者如果numberOfElements會少於 9 個字元、 不正確的參數處理常式會叫用,如所述參數驗證。 如果執行,則允許繼續執行,這些函數會傳回-1 並設定errno到EINVAL如果緩衝區NULL或numberOfElements是否小於或等於 0 或一組errno到ERANGE如果numberOfElements少於 9。
在 C++ 中,使用這些函式已經過簡化的樣板的多載 ; 多載可以自動推斷緩衝區長度 (而不必指定 size 引數),它們可以自動取代較舊的、 不安全的函式與其較新的、 安全的對應項目。 如需詳細資訊,請參閱 安全範本多載。
泛用文字常式對應:
TCHAR。H 常式 |
_UNICODE & 未定義的 _MBCS |
定義的 _MBCS |
定義 _unicode 之後 |
---|---|---|---|
_tstrdate_s |
_strdate_s |
_strdate_s |
_wstrdate_s |
需求
常式 |
所需的標頭 |
---|---|
_strdate |
<time.h> |
_wstrdate |
<time.h> 或者 <wchar.h> |
_strdate_s |
<time.h> |
範例
請參閱範例的時間。
.NET Framework 對等用法
請參閱
參考
ctime_s、 _ctime32_s、 _ctime64_s、 _wctime_s、 _wctime32_s、 _wctime64_s
gmtime_s,_gmtime32_s _gmtime64_s