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


C語言 strftime用法及代碼示例

C語言time頭文件(time.h)中strftime函數的用法及代碼示例。

用法:

size_t strftime (char* ptr, size_t maxsize, const char* format,
                 const struct tm* timeptr );
將時間格式化為字符串
複製到ptr的內容format,將其格式說明符擴展為代表時間的相應值,該時間描述於timeptr,限製為maxsize字符。

參數

ptr
指向將目標C字符串複製到的目標數組的指針。
maxsize
要複製的最大字符數ptr,包括終止null-character
format
C字符串,包含常規字符和特殊格式說明符的任意組合。這些格式說明符由函數替換為相應的值,以表示在中指定的時間timeptr。它們都以百分比開頭(%)符號,它們是:
說明符取而代之示例
%a工作日縮寫名稱*Thu
%A工作日全名*Thursday
%b月份縮寫名稱*Aug
%B月份全名*August
%c日期和時間表示*Thu Aug 23 14:55:02 2001
%C年份除以100,並截斷為整數(00-99)20
%d每月的某天,zero-padded(01-31)23
%D短的MM/DD/YY日期,相當於%m/%d/%y08/23/01
%e每月的某天,以空格填充( 1-31)23
%F短的YYYY-MM-DD日期,相當於%Y-%m-%d2001-08-23
%g以周為基礎的年份,後兩位數字(00-99)01
%G以周為基礎的年份2001
%h縮寫的月份名稱*(與%b)Aug
%H小時以24小時製(00-23)14
%I12h格式的小時(01-12)02
%j一年中的某天(001-366)235
%m以十進製數字表示的月份(01-12)08
%M分鍾 (00-59)55
%nNew-line個字符('\n')
%pAM或PM指定PM
%r12小時製*02:55:02 pm
%R24小時HH:MM時間,相當於%H:%M14:55
%S第二 (00-61)02
%tHorizontal-tab個字符('\t')
%TISO 8601時間格式(HH:MM:SS), 相當於%H:%M:%S14:55:02
%uISO 8601工作日為星期一,數字為1(1-7)4
%U以第一個星期日為第一個星期的第一天的星期數(00-53)33
%VISO 8601周編號(01-53)34
%w工作日為小數,星期日為0(0-6)4
%W以第一個星期一作為第一個星期的第一天的星期數(00-53)34
%x日期表示*08/23/01
%X時間表示*14:55:02
%y年份,後兩位數字(00-99)01
%YYear2001
%zISO 8601與時區UTC的偏移量(1分鍾= 1、1小時= 100)
如果無法確定時區,則沒有字符
+100
%Z時區名稱或縮寫*
如果無法確定時區,則沒有字符
CDT
%%A %標誌%
*標有星號(*)的說明符為locale-dependent。
注意:黃色行表示指定符和C99引入的sub-specifiers。從C99開始,兩個locale-specific修飾符也可以插入在百分號(%),並在適當的情況下要求指定替代格式的說明者:
修飾符意義適用於
E使用語言環境的替代表示%Ec %EC %Ex %EX %Ey %EY
O使用語言環境的替代數字符號%Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy
timeptr
指向一個指針tm包含日曆時間的結構,該時間細分為各個部分(請參見struct tm)。

返回值

如果生成的C字符串的長度(包括終止null-character)不超過maxsize,該函數返回複製到的字符總數ptr(不包括終止的null-character)。
否則,它返回零,並且由指向的數組的內容ptr是不確定的。


示例

/* strftime example */
#include <stdio.h>      /* puts */
#include <time.h>       /* time_t, struct tm, time, localtime, strftime */

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;
  char buffer [80];

  time (&rawtime);
  timeinfo = localtime (&rawtime);

  strftime (buffer,80,"Now it's %I:%M%p.",timeinfo);
  puts (buffer);

  return 0;
}


輸出示例:

Now it's 03:21PM.



相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C strftime function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。