- ベストアンサー
C言語 ミリ秒を日付に変換には
初心者です orz ただいまC言語勉強中です。(仕事で必要になりそう・・・) やりたいことは、タイトルの通り 「C言語 ミリ秒を日付に変換」です。 1298616934703→yyyyMMddhhmmddssSSS ↑こういう感じのことがしたいです! ログにミリ秒で吐き出された時間から日付を求めたいのですが、 やり方が、いまいちわかりません(泣) どなたか参考サイトや変換方法をご教授願えると助かります。
- ikechanman
- お礼率66% (8/12)
- C・C++・C#
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その「ミリ秒で吐き出された時間」という数値が、 単純にエポック秒を1000倍したものだったら、 1000で割った商と余りでに「秒単位の数値(エポック秒)」と「ミリ秒部分」に分けてから、 エポック秒を年月日時分秒に変換するだけでしょう。 ---ここから--- #include <stdio.h> #include <time.h> 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); } ---ここまで---
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
C標準関数では、time_tは秒単位だったはず。 linuxなら http://archive.linux.or.jp/JM/html/LDP_man-pages/man2/gettimeofday.2.html とか http://archive.linux.or.jp/JM/html/LDP_man-pages/man2/clock_gettime.2.html とかですね。 フォーマットを合せたかったら、printf系で。
お礼
ちゃんと細かいフォーマット指定もできるんですね~ ありがとうございます、勉強になりました!
- papapa0427
- ベストアンサー率25% (371/1472)
過去にこういう質問がありました。過去に同様の質問があったかどうか、確認しましょうね。 http://okwave.jp/qa/q949646.html
お礼
ありがとうございます! やりたいことができました!
補足
おわーすみません。。。 参考サイト内で ------------------------ CTime timeNow = CTime::GetCurrentTime(); CString sTime = timeNow.Format("%Y%m%d%H%M%S"); ------------------------ と、あると思うのですが、環境がLinuxのため使えなさそうです。。。 (説明が足りませんでした) それとも、 --------------------------------------- time_t timer; time(&timer);/* 現在の時刻を取得 */ struct tm *local; local =localtime(&timer);/* 地方時の構造体に変換 */ CString time; //CString用の時間 time.Format("%4d%02d%02d%02d%02d%02d" ,local->tm_year + 1900,/* 年 */ local->tm_mon+1,/*月は0から始まるので1を+*/ local->tm_mday,/* 日 */ local->tm_hour,/* 時 */ local->tm_min,/* 分 */ local->tm_sec);/* 秒 */ --------------------------------------- ↑のtimerに取得したミリ秒を格納して、取得する方法ってことだったりします? 見当違いなこと言ってたらすみません orz 回答よろしくお願いいたします。
関連するQ&A
- squidのログでミリ秒を日付に変換したい
squidのログは以下のようにとれるわけですが、 1215284529.125 1799 172.16.100.1 TCP_・・・ 一番最初の「1215284529.125」は、ミリ秒で表示された、日付と時間かと思います。 これをExcelで、日付と時刻に変換したいのですが、方法がわかれば教えて頂けませんでしょうか? よろしくお願い致します。
- ベストアンサー
- Linux系OS
- LinaxのC言語で100ミリ秒スリープさせたいのですが、どのような方法が良いでしょうか?
LinaxのC言語で100ミリ秒スリープさせたいのですが、どのような方法が良いでしょうか? よろしくお願いします
- ベストアンサー
- C・C++・C#
- C言語で秒単位の数値をコンソールタイプから入力して、その値を時分秒に変換して画面に表示したいのですが、、、
こんばんは、大学1年生です。 授業で、C言語を勉強しているのですが原理などもよく分からず困ってます。 質問なのですが、C秒単位の数値をコンソールタイプから入力して、その値を時分秒に変換して画面に表示したいのですが参考書などを見てもサッパリです。ソースを教えていただくと助かります。ちなみに、与えられた値を時分秒に変換する部分は関数でお願いします。
- ベストアンサー
- C・C++・C#
- 1秒は何ミリ秒とか、単位変換の問題が苦手です。
今ITパスポートなどの情報処理技術者試験などの勉強をしているのですが、 1秒は何ミリ秒とか、3,600,000ミリ秒は何時間とかの単位変換の問題が苦手です。 また、4,096バイトは何kバイトとかの単位変換の問題とかも苦手です。 どのようにしたら、早く正確に解くことできるようになるでしょうか? 答え間違っていたり、答えが正解してても時間がかかってしまったりします。 計算方法や早く正確に解く方法など、教えていただけないでしょうか? よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- c言語で取得されるシステム日付について
AIX上でc言語を使用したプログラムを 作っています。 開発環境が新しいAIXとなりそこでの疎通テストを しています。 テストの都合上、smitにてシステム日付を変更後、 テストを実施したところ動作は問題ないのですが C言語内でログを出す際の時刻が-9時間になっています。 Aix上でdateコマンドをうつと変更した正しい 日付時刻が表示されます。 C言語からだと何故違う日付がでるのでしょうか。 -9時間なのでGmtのことだと思いますがなにを 設定すれば解消さらるのか教えて下さい。 素人ですいません。
- 締切済み
- C・C++・C#
- C#による日付のフォーマット変換について
初めまして。 大学にてC#を勉強中の身なのですが、文字列の日付フォーマット 【YYYY/MM/DD → DD-MMM-YY】 への変換方法が分からず困っています。 よろしければどなたかご教授して頂けないでしょうか? ※このような形に変換を希望しています string型 【2000/01/01】 → string型 【01-Jan-00】
- ベストアンサー
- その他(プログラミング・開発)
- c言語について
僕はc言語どころか、プログラミングについて何も知らない初心者です。 ですが、こんな僕でもc言語でプログラミングが書けるようになりたいです。 その為にc言語の教科書(明解c言語)だけは買ったのですが、 そのc言語を書くためのアプリ的なものは何を使えばいいのでしょうか。 また、c言語を学ぶ前に「これを習ってなかったら、c言語は出来ないよ!笑」的なものはありますか? (小学校の九九が出来ないのに、中学の因数分解は出来ないよね!みたいなものです) それを学ぶためのオススメの参考書があれば、そちらも教えて欲しいです! また、オススメの勉強法があれば知りたいです! よろしくお願いします。
- ベストアンサー
- 情報工学
- ASPを使用してミリ秒単位の時間の取得
タイトル通りです。 とある関数のオーバーヘッド時間を計測したいです。 ミリ秒単位の時間を取得する方法は無いでしょうか? 言語はASP(VBScript)です。
- ベストアンサー
- Microsoft ASP
お礼
ほうっ!! できました! Javaなら簡単にできるんですけど、 Cだとこんなに難しいとは(難しいと思っているのは僕だけ・・・?) 回答ありがとうございました(^q^)/