strftime関数でフォーマット指定して日付の出力

K&R本 付録B10

printfのようなフォーマット指定子で日付の出力ができるみたいです。

さっそくやってみました。

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

int main (void) {
    time_t t = time(NULL);
    struct tm tm;
    char str[81];
    
    localtime_s(&tm,&t);
    
    strftime(str,sizeof(str),"%Y-%m-%d %H:%I:%S",&tm);
    
    printf("%s",str);
    
    return 0;
}
$ main
2009-07-26 09:09:22

これは凄く便利ですね。日付関係で何かするときは基本的にこの関数使いたいと思います。

ちなみにlocaltimeだと警告が出たのでlocaltime_sを使うようにしています。

戻り値にエラーコードが返るようですね。