質問: c言語 ミリ秒を日付に変換には 初心者です orz ただいまc言語勉強中です。(仕事で必要になりそう・・・) やりたいことは、タイトルの通り 「c言語 ミリ秒を日付に変換」です。 1298616934703→yyyymmddhhmmddsssss ↑こういう感じのことがしたいです! ログにミリ秒で吐き出された時間から日付を求めたいのですが、 やり方が、いまいちわかりません(泣) どなたか参考サイトや変換方法をご教授願えると助かります。
回答: その「ミリ秒で吐き出された時間」という数値が、 単純にエポック秒を1000倍したものだったら、 1000で割った商と余りでに「秒単位の数値(エポック秒)」と「ミリ秒部分」に分けてから、 エポック秒を年月日時分秒に変換するだけでしょう。 ---ここから--- #include #include void conv_time(char *dst, long long t) { time_t clock = t / 1000ll; int millisec = t % 1000ll; struct tm *local = localtime(&clock); sprintf(dst, "%04d%02d%02d%02d%02d%02d%03d", local->tm_year + 1900, local->tm_mon+1, local->tm_mday, local->tm_hour, local->tm_min, local->tm_sec, millisec); } int main(int argc, char *argv[]) { long long t = 1298616934703ll; char s[18]; conv_time(s, t); printf("%lld -> %s\n", t, s); } ---ここまで---