當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 asctime()、asctime_s()用法及代碼示例


asctime()函數:
asctime()函數在time.h頭文件中定義。此函數將指針返回到包含包含存儲在指向struct tm類型的結構中的信息的字符串。該函數用於返回係統定義的本地時間。

用法:

char *asctime(const struct tm* tm_ptr);

參數:此函數接受單個參數time_ptr,即指向要轉換的tm對象的指針。


返回類型:此函數以“ Www Mmm dd hh:mm:ss yyyy”的形式返回日曆時間,其中:

  • Www:代表以三個字母縮寫的日期(星期一,星期二,星期三。,)
  • Mmm:代表以三個字母縮寫的月份(1月,2月,3月,。)
  • dd:以兩位數字表示日期(01,02,10,21,31 ..,)
  • hh:代表小時(11、12、13、22…,)
  • mm:代表分鍾(10、11、12、45…,)
  • ss:代表秒(10,20,30…,)
  • yyyy:用四位數字表示年份(2000、2001、2019、2020…,)

下麵的程序演示了C中的asctime()函數:

// C program to demonstrate 
// the asctime() function 
  
#include <stdio.h> 
#include <time.h> 
  
int main() 
{ 
    struct tm* ptr; 
    time_t lt; 
    lt = time(NULL); 
    ptr = localtime(&lt); 
  
    // using the asctime() function 
    printf("%s", asctime(ptr)); 
  
    return 0; 
}
輸出:
Wed Aug 14 04:21:25 2019

asctime_s()函數:

此函數用於將給定的日曆時間轉換為文本表示形式。我們無法在asctime()函數中修改輸出日曆時間,而可以在asctime_s()函數中修改日曆時間。 asctime_s的一般語法為“ Www Mmm dd hh:mm:ss yyyy”。

用法:

errno_t asctime_s(char *buf, rsize_t bufsz, 
                  const struct tm *time_ptr)

參數:此函數接受三個參數:

  • time_ptr:指向指定打印時間的tm對象的指針
  • buf:指向用戶提供的緩衝區的指針,長度至少26個字節
  • bufsz:用戶提供的緩衝區的大小

返回值:該函數返回指向以空值結尾的靜態字符串的指針,該字符串包含日期和時間的文本表示形式。原始日曆時間將從asctime()函數獲得。

注意:在某些C-compilers中,將不支持asctime_s()。我們可以使用strftime()函數代替asctime_s()函數。

下麵的程序研究C語言中的asctime_s()函數:

// __STDC_WANT_LIB_EXT1__ is a User defined 
// standard to get astime_s() function to work 
#define __STDC_WANT_LIB_EXT1__ 1 
  
#include <stdio.h> 
#include <time.h> 
  
int main(void) 
{ 
    struct tm tm
        = *localtime(&(time_t){ time(NULL) }); 
    printf("%s", asctime(&tm)); 
  
// Calling C-standard to execute 
// asctime_s() function 
#ifdef __STDC_LIB_EXT1__ 
  
    char str[50]; 
  
    // Using the asctime_s() function 
    asctime_s(str, sizeof str, &tm); 
  
    // Print the current time 
    // using the asctime_s() function 
    printf("%s", str); 
#endif 
}
輸出:
Wed Aug 14 04:33:54 2019

參考: https://en.cppreference.com/w/c/chrono/asctime



相關用法


注:本文由純淨天空篩選整理自avsadityavardhan大神的英文原創作品 asctime() and asctime_s() functions in C with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。