Menu

Category

Archive

logo


strftime()の使い方

2014-06-01 17:15:00 +0900
  • このエントリーをはてなブックマークに追加

前回前々回 と time.h の関数を見てきました。この記事は、その中でも一番柔軟に使用できる strftime() の使い方です。この strftime とは、string format time のことです。

 1 #include <stdio.h>
 2 #include <time.h>
 3 
 4 int main( void )
 5 {
 6     struct tm *timeptr;
 7     time_t timeval;
 8     char buffer[80];
 9     
10     time(&timeval);
11     
12     timeptr = localtime(&timeval);
13     
14     strftime(buffer, 80, "%c\n", timeptr);
15     printf("strftime %%c format\n");
16     printf("-------------------------\n %s\n", buffer);
17     
18     strftime(buffer, 80, "%A, %B %d, %H:%M\n", timeptr);
19     printf("strftime %%A, %%B %%d, %%H:%%M format\n");
20     printf("--------------------------------\n %s\n", buffer);
21     
22     strftime(buffer, 80, "%a, %b %d, %H:%M\n", timeptr);
23     printf("strftime %%a, %%b %%d, %%H:%%M format\n");
24     printf("--------------------------------\n %s\n", buffer);
25     
26     
27     strftime(buffer, 80, "%a, %b %d, %I:%M %p\n", timeptr);
28     printf("strftime %%a, %%b %%d, %%I:%%M %%p format\n");
29     printf("-----------------------------------\n %s\n", buffer);
30     
31     strftime(buffer, 80, "%a, %b %d, %I:%M %p, %Y\n", timeptr);
32     printf("strftime %%a, %%b %%d, %%I:%%M %%p, %%Y format\n");
33     printf("---------------------------------------\n %s\n", buffer);
34     
35     strftime(buffer, 80, "%a, %b %d, %I:%M %p, %y\n", timeptr);
36     printf("strftime %%a, %%b %%d, %%I:%%M %%p, %%y format\n");
37     printf("---------------------------------------\n %s\n", buffer);
38     
39     strftime(buffer, 80, "%A, %b %d %I:%M %p %Y\n", timeptr);
40     printf("strftime %%A, %%b %%d, %%I:%%M %%p, %%Y format\n");
41     printf("---------------------------------------\n %s\n", buffer);
42     
43     
44     return 0;
45 }
46 
47 /* Output:
48     strftime %c format
49     -------------------------
50      Sun Jun  1 17:13:31 2014
51 
52     strftime %A, %B %d, %H:%M format
53     --------------------------------
54      Sunday, June 01, 17:13
55 
56     strftime %a, %b %d, %H:%M format
57     --------------------------------
58      Sun, Jun 01, 17:13
59 
60     strftime %a, %b %d, %I:%M %p format
61     -----------------------------------
62      Sun, Jun 01, 05:13 PM
63 
64     strftime %a, %b %d, %I:%M %p, %Y format
65     ---------------------------------------
66      Sun, Jun 01, 05:13 PM, 2014
67 
68     strftime %a, %b %d, %I:%M %p, %y format
69     ---------------------------------------
70      Sun, Jun 01, 05:13 PM, 14
71 
72     strftime %A, %b %d, %I:%M %p, %Y format
73     ---------------------------------------
74      Sunday, Jun 01 05:13 PM 2014
75 
76     Program ended with exit code: 0
77 */
  • %c は asctime() や ctime() と似たようなフォーマットを返します。
  • %A と %a は曜日の指定です。[full spelled-out か 3文字]
  • %B と %b は月の名前の指定。[full spelled-out か 3文字]
  • %d は日付。
  • %Y と %y は年。[4桁か下2桁]
  • %H と %I は、24時間表示(%H)か 12時間表示(%I)
  • %p は、PM/AM。