システムの現在時刻を取得したいそのために私はCで次のコードを使っています:
time_t now;
struct tm *mytime = localtime(&now);
if ( strftime(buffer, sizeof buffer, "%X", mytime) )
{
printf("time1 = \"%s\"\n", buffer);
}
問題は、このコードがランダムな時間を与えていることです。また、ランダムな時間は毎回異なります。私のシステムの現在時刻が欲しいのですが。
ここ からコピー・アンド・ペースト
/* localtime example */
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "Current local time and date: %s", asctime (timeinfo) );
return 0;
}
(これをCで動かすためには、main()の引数リストに "void"を追加するだけです)
now
変数を初期化します。
time_t now = time(0); // Get the system time
localtime
関数は、渡されたtime_t
の時間値をstruct tm
に変換するために使用されます。実際にはシステム時間を取得しません。
簡単な方法:
#include <time.h>
#include <stdio.h>
int main(void)
{
time_t mytime = time(NULL);
char * time_str = ctime(&mytime);
time_str[strlen(time_str)-1] = '\0';
printf("Current Time : %s\n", time_str);
return 0;
}
上記の@mingosからの答えを拡張するために、私は自分の時間を特定のフォーマット([dd mm yyyy hh:mm:ss])にフォーマットするための下記の関数を書きました。
// Store the formatted string of time in the output
void format_time(char *output){
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
sprintf(output, "[%d %d %d %d:%d:%d]",timeinfo->tm_mday, timeinfo->tm_mon + 1, timeinfo->tm_year + 1900, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
}
struct tm
に関するさらに詳しい情報は こちら にあります。
#include<stdio.h>
#include<time.h>
void main()
{
time_t t;
time(&t);
printf("\n current time is : %s",ctime(&t));
}
皆さんはこの関数を使って現在の現地時間を知ることができます。 gmtimeが欲しいなら、localtimeの代わりにgmtime関数を使ってください。乾杯
time_t my_time;
struct tm * timeinfo;
time (&my_time);
timeinfo = localtime (&my_time);
CCLog("year->%d",timeinfo->tm_year+1900);
CCLog("month->%d",timeinfo->tm_mon+1);
CCLog("date->%d",timeinfo->tm_mday);
CCLog("hour->%d",timeinfo->tm_hour);
CCLog("minutes->%d",timeinfo->tm_min);
CCLog("seconds->%d",timeinfo->tm_sec);
#include <stdio.h>
#include <time.h>
void main()
{
time_t t;
time(&t);
clrscr();
printf("Today's date and time : %s",ctime(&t));
getch();
}