C++におけるstrftime()の詳細

3179 ワード

strftime()関数を使用して、時間を所望のフォーマットにフォーマットできます.そのプロトタイプは、size_t strftime(char*strDest、size_t maxsize、const char*format、const struct tm*timeptr);format指向文字列のフォーマットコマンドに従ってtimeptrに保存された時間情報をstrDest指向文字列に配置し、最大maxsize文字をstrDestに格納することができます.この関数は、strDestが指す文字列に配置された文字数を返します.関数strftime()の操作はsprintf()に似ています.パーセント(%)で始まるフォーマットコマンドのセットを識別し、フォーマット出力結果を文字列に配置します.フォーマットコマンドは、シリアルstrDestの様々な日付と時間情報の正確な表示方法を説明します.フォーマット列の他の文字は、そのまま列に配置されます.フォーマットコマンドは、大文字と小文字を区別する列にあります.%a曜日の略記%A曜日のフルネーム%b月分の略記%B月のフルネーム%c標準の日付の時間列%C年の後2桁の数字%d 10進数で表される毎月の翌日%D月/日/年%e 2文字フィールドで、10進数で表される毎月の翌日%F年-月-日%g年の後2桁の数字で、週ベースの年%G年分を使用します.週の年%h略記に基づく月名%H 24時間制の時間%I 12時間制の時間%j 10進法で表される年の何日目%m 10進法で表される月数%M 10時制で表される分数%n新行子%pローカルのAMまたはPMの等価表示%r 12時間の時間%R表示時間と分:hh:mm%S 10進法の秒数%t水平タブ%T表示時秒:hh:mm:ss%u毎週の数日目、月曜日は初日(0から6、月曜日は0)%U年目の何週目、日曜日を初日(0から53)%V年目の何週目、週ベースの年%w十進法で表される曜日(0から6、日曜日は0)%W年目の何週目、月曜日を初日とする(値が0から53)%x標準の日付列%X標準の時間列%yは世紀の10進数年を持たない(値が0から99)%Yは世紀の部分の10進数年%z,%Zタイムゾーン名を持ち、タイムゾーン名が得られない場合は空の文字を返します.%%パーセント記号は現在何時であるかを表示し、12時間で表示する場合は、次のようになります.
#include 
#include 
int main(void)
{
    struct tm *ptr;
    time_t lt;
    char str[80];
    lt=time(NUL);
    ptr=localtime(&lt);
    strftime(str,100,"It is now %I %p",ptr);
    printf(str);
    return 0;

}

 
実行結果:It is now 4 PM、次のプログラムは現在の完全な日付を表示します.
#include 
#include 

int main( void )
{
  struct tm *newtime;
  char tmpbuf[128];
  time_t lt1;
  time( &lt1 );
  newtime=localtime(&lt1);
  strftime( tmpbuf, 128,  "Today is %A, day %d of %B in the year %Y./n", newtime);
  printf(tmpbuf);

  return 0;
}

 
実行結果:Today is Saturday,day 30 of July in the year 2005.
転載先:https://www.cnblogs.com/Stultz-Lee/p/6699992.html