2

2004 年から特定の日付までのミリ秒数があります。これをtime_tに変換してctime()で表示したいのですが?

おそらく、このミリ秒のタイムスタンプで日付を視覚化する別の方法がありますが、誰か持っていますか?

4

2 に答える 2

1

「2004 年から開始」とは「2004 年の 00:00 UTC から開始」を意味すると仮定すると、

time_t time = 1072915200 + millis / 1000;

ctime()UTC ではなく現地時間で結果が表示されることに注意してください。

于 2013-06-26T14:20:13.867 に答える
0

time_t の精度は 1 秒のみです。これで問題ない場合は、mktime() を使用して 2004-01-01 の time_t 値を計算し、秒単位で time-value に追加できます。

struct tm tp;
memset(&tp, 0, sizeof(tp));
tp.tm_mday = 1;
tp.tm_mon = 0;
tp.tm_year = 2004 - 1900;
time_t offset = mktime(&tp);

time_t realtime = offset + yourtime / 1000;

printf("%s", ctime(&realtime));
于 2013-06-26T09:26:47.053 に答える