アプリ版:「スタンプのみでお礼する」機能のリリースについて

お疲れ様です

現在時刻をミリ秒まで取得がしたいです。
今は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);/* 秒 */

A 回答 (4件)

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



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

CFileTimeSpanで、相対時間も取れそうです。

参考URL:http://msdn.microsoft.com/ja-jp/library/37583efy …
    • good
    • 1

MFCでの時刻の扱いはtoginoさんの答えどおりです。


補足しておくとMFC環境で組まれているならWin32 API関数は直接利用することができます。
    • good
    • 2

> 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");

とシンプルになりますよ~
    • good
    • 1

 環境がなんなのか、明示がないので、答えようもないところがあるのですが・・・


 もし、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ですといわれるとずっこけですので、自信なしということで(笑)

この回答への補足

環境はMicrosoft Visual C++ 6.0を
使用しています。
MFCで標準クラスはないのでしょうか?

補足日時:2004/08/03 17:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています