0

エポックの後に秒があります(たとえば、x、xはlong longデータ型です)。<ctime>ライブラリを使用してUNIX時間に変換したいと思います。問題は、time_t変数を機能させたいのですが、 ()をに変換gmtime()できません。xlong longtime_t

これが行っていることです:

//x is number of seconds after epoch, I want that in unix time 
time_t t=x; 
printf("%s\n",asctime(gmtime(&t)));

どういうわけか型キャストできますxtime_t

4

1 に答える 1

5

キャストするだけ?

time_t t = (time_t) x;

上位32ビットはカットされますが、64ビットのタイムスタンプが本当に必要になるまで25年以上あります。:)

もちろん、エポックがPOSIXエポック(1970-01-01 00:00:00)と同じでない場合は、問題が発生する可能性があります。

于 2012-07-20T12:09:10.133 に答える