C言語のtime_tに関して
こんにちは。
今現在、C言語にてプログラミングを行っております。time_tを用いましたが、4月などの2桁目が0のは巧く取得できたのですが、日にちの2桁目が0にならず、空白となってしまいます。
一応、ソースを載せておきますが見辛いのが申し訳ないです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
time_t timer;
struct tm *local;
struct tm *utc;
extern char today[20];
extern char today2[20];
extern char today_year[10];
extern char today_month[2];
extern char today_day[2];
void day(){
char *ptr;
/* 現在時刻を取得 */
timer = time(NULL);
local = localtime(&timer); /* 地方時に変換 */
/* 地方時 変換後表示 */
printf("地方時: ");
printf("%4d/", local->tm_year + 1900);
printf("%2d/", local->tm_mon + 1);
printf("%2d ", local->tm_mday);
if(local->tm_mday<10)
//system("pause");
// printf("%2d:", local->tm_hour);
// printf("%2d:", local->tm_min);
// printf("%2d", local->tm_sec);
// printf(" %d\n", local->tm_isdst);
/*****************************/
sprintf(today_year,"%4d", local->tm_year + 1900);
sprintf(today_month,"%2d", local->tm_mon + 1);
sprintf(today_day,"%2d", local->tm_mday);
if((local->tm_mon+1)<=9)
today_month[0]='0';
if((local->tm_mday+1)<=9)
today_day[0]='0';
sprintf(today, "%s-%s-%s", today_year, today_month, today_day);
sprintf(today2, "%s/%s/%s", today_year, today_month, today_day);
//printf("%s",today);
/*****************************/
// utc = gmtime(&timer); /* 協定世界時(UTC)に変換 */
/* 協定世界時 変換後表示 */
// printf("\n\n\n\n協定世界時: ");
// printf("%4d/", utc->tm_year + 1900);
// printf("%2d/", utc->tm_mon + 1);
// printf("%2d ", utc->tm_mday);
// printf("%2d:", utc->tm_hour);
// printf("%2d:", utc->tm_min);
// printf("%2d", utc->tm_sec);
// printf(" %d\n", utc->tm_isdst);
return;
}
どなたかご教示下さい。
お礼
回答ありがとうございます。 time()とlocaltime()を使用して、無事システム時刻を取得する事が出来ました。