締切済み

現在時刻をミリ秒まで取得

  • 困ってます
  • 質問No.949646
  • 閲覧数16535
  • ありがとう数24
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 40% (6/15)

お疲れ様です

現在時刻をミリ秒まで取得がしたいです。
今はtime_tを使って秒までは取得したのですがミリ秒は構造体にないらしく同じようにとってはこれないのでしょうか?
また別のやり方だとどんなのがあるか教えてください。
現在は下記のように取得してyyyymmddhhmmssの形を作ってます。
これをyyyymmddhhmmsssssのようにミリ秒を増やしたたいのです。
長くなってしまいましたがよろしくお願いします
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);/* 秒 */

回答 (全4件)

  • 回答No.4

ベストアンサー率 0% (0/0)

MFCでは、CFileTimeクラスが使えそうです。

CFileTime myFT;
myFT = CFileTime::GetCurrentTime();

CFileTimeSpanで、相対時間も取れそうです。
  • 回答No.3

ベストアンサー率 58% (445/756)

MFCでの時刻の扱いはtoginoさんの答えどおりです。
補足しておくとMFC環境で組まれているならWin32 API関数は直接利用することができます。
  • 回答No.2

ベストアンサー率 75% (97/129)

> MFCで標準クラスはないのでしょうか?
MFC の CTime では、1970年1月1日から経過した
『秒』で管理されています。
ミリ秒まで取得する場合は、mitoneko さんの回答どおり

SYSTEMTIME st;
GetSystemTime(&st);

とする必要があります。
---
ちなみに MFC を使いますと質問文のプログラムは

CTime timeNow = CTime::GetCurrentTime();
CString sTime = timeNow.Format("%Y%m%d%H%M%S");

とシンプルになりますよ~
  • 回答No.1

ベストアンサー率 58% (445/756)

 環境がなんなのか、明示がないので、答えようもないところがあるのですが・・・
 もし、Win32環境でお望みでしたら、次のAPI関数を利用されてはどうですか?

Void GetLocalTime(LPSYSTEMTIME lpSystemTime)

typedef struct _SYSTEMTIME { // st
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;

LPSYSTEMTIMEは、SYSTEMTIMEへのポインタのtypedefです。

 ちなみに、kernel32で定義されています。
 挙動は・・・・もう定義を見て頂ければ、そのまんまです(苦笑)
 環境がunixですといわれるとずっこけですので、自信なしということで(笑)
補足コメント
wsy920

お礼率 40% (6/15)

環境はMicrosoft Visual C++ 6.0を
使用しています。
MFCで標準クラスはないのでしょうか?
投稿日時 - 2004-08-03 17:25:32
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ