共用方式為


_strtime_s _wstrtime_s

複製到緩衝區目前的時間。這些是舊版 _strtime、 _wstrtime 中所述的安全性增強功能與安全性功能,則在 CRT 中

errno_t _strtime_s(
   char *buffer,
   size_t numberOfElements
);
errno_t _wstrtime_s(
   wchar_t *buffer,
   size_t numberOfElements
);
template <size_t size>
errno_t _strtime_s(
   char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrtime_s(
   wchar_t (&buffer)[size]
); // C++ only

參數

  • [out] buffer
    緩衝區中,至少 10 個位元組長的時間寫入的位置。

  • [in] numberOfElements
    緩衝區的大小。

傳回值

如果成功的話,則為零。

如果發生錯誤狀況,不正確的參數處理常式會叫用,如所述參數驗證。如果失敗,傳回的值會是一個錯誤碼。錯誤代碼被定義在 ERRNO 中。H。 請參閱下表中的這個函式所產生的確切錯誤。如需有關錯誤碼的詳細資訊,請參閱 errno 常數

錯誤狀況

buffer

numberOfElements

Return

內容buffer

NULL

(任何)

EINVAL

不能修改

不NULL (指向有效的緩衝區)

0

EINVAL

不能修改

不NULL (指向有效的緩衝區)

0 < 大小 < 9

EINVAL

空字串

不NULL (指向有效的緩衝區)

大小 > 9

0

格式化為指定 「 備註 」 中的目前時間

安全性問題

傳入了無效的非 NULL 值的緩衝區當就會發生存取違規numberOfElements參數大於 9。

將值傳遞numberOfElements ,它大於緩衝區的實際大小會導致緩衝區滿溢的情況。

備註

這些函式會提供更安全版本的_strtime和_wstrtime。_strtime_s函式會將目前的當地時間複製到緩衝區所指timestr*.* 時間格式為hh:mm:ss , hh兩個數字代表在 24 小時制表示法,小時mm是兩個數字,表示分鐘內,和ss是兩個數字,表示秒數。例如,字串18:23:44代表 23 分 44 秒過 6 P.M.緩衝區的大小必須至少 9 個位元組長; 第二個參數所指定的實際大小。

_wstrtime寬字元版本的_strtime。 引數和傳回值的_wstrtime是寬字元字串。這些函式具有相同其他方式作業。

在 C++ 中,使用這些函式已經過簡化的樣板的多載 ; 多載可以自動推斷緩衝區長度 (而不必指定 size 引數),它們可以自動取代較舊的、 不安全的函式與其較新的、 安全的對應項目。如需詳細資訊,請參閱 安全範本多載

泛用文字常式對應:

TCHAR。H 常式

_UNICODE & 未定義的 _MBCS

定義的 _MBCS

定義 _unicode 之後

_tstrtime_s

_strtime_s

_strtime_s

_wstrtime_s

需求

常式

所需的標頭

_strtime_s

<time.h>

_wstrtime_s

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

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

範例

// strtime_s.c

#include <time.h>
#include <stdio.h>

int main()
{
    char tmpbuf[9];
    errno_t err;

    // Set time zone from TZ environment variable. If TZ is not set,
    // the operating system is queried to obtain the default value 
    // for the variable. 
    //
    _tzset();

    // Display operating system-style date and time. 
    err = _strtime_s( tmpbuf, 9 );
    if (err)
    {
       printf("_strdate_s failed due to an invalid argument.");
      exit(1);
    }
    printf( "OS time:\t\t\t\t%s\n", tmpbuf );
    err = _strdate_s( tmpbuf, 9 );
    if (err)
    {
       printf("_strdate_s failed due to an invalid argument.");
       exit(1);
    }
    printf( "OS date:\t\t\t\t%s\n", tmpbuf );

}
  

.NET Framework 對等用法

請參閱

參考

時間管理

asctime_s _wasctime_s

ctime_s、 _ctime32_s、 _ctime64_s、 _wctime_s、 _wctime32_s、 _wctime64_s

gmtime_s,_gmtime32_s _gmtime64_s

localtime_s,_localtime32_s _localtime64_s

mktime,_mktime32 _mktime64

time,_time32 _time64

_tzset